Think in terms of pre-computed lookup tables or something.  At what point does it make more sense to use a database instead of hardcoding values in my application?  The values are not going to change, and they're nicely segregated away from maintenance developers.  100 values, 1k, 10k, 100k?  I'm wanting to store about 40k values.  Right now it's a machine-generated switch statement (which VS2010 is unhappy about).edit:If anyone is curious, here's how I approached this:  My data was storable in two 100k-element float arrays, so that's what I did.  It took about 20 seconds to generate the data, so I did that once, and serialized it to an embedded resource with a BinaryFormatter.  Unpacking the data takes about 5 milliseconds at application startup, and outperforms the database implementation I was replacing (these hard-coded values were stored there prior) by almost 45,000x.
Practical way to store a reasonably large amount of data that hardly ever changes?
c#;data structures
My suggestion is to keep the data in either a file or database table. If speed is not an issue, then query the file or database (database is better) at run time. If memory is not a problem, but you would like some speed, then load the data into memory when the program starts. In C# you could use and array, list or (best option) a hash-table and have a method to return the data you need at runtime ( ie getDataValue(string keyToValue) ). I would recommend that you do not use the switch statement as it would be very difficult to maintain and would result in a large exe footprint.Hash-table eg http://support.microsoft.com/kb/309357