Damn! I wanted to post up in reply to the original post that Ariel made but I was just too busy at the time. Hopefully he isn’t too busy to listen now. One of the things that I would like to see added to the collection classes is a series of high performance indexes, for example:

  • StringIndex
  • DateIndex
  • EnumIndex

I’m sure there are a few others that could be dreamed up. What you could then do is query it for matches, for example the following code could be written against a StringIndex.

  1 StringIndex index = new StringIndex<Customer>();
  2 QueryResultCollection<Customer> results = index.Query(
  3       "Smi",
  4       QueryOption.BeginsWith
  5       );
  6 foreach (QueryResult<Customer> result in results)
  7 {
  8       Custome customer = result.Entity;
  9       // Do something with Customer.
 10 }

Now normally you would rely on the database to do this kind of indexing but there are technologies out there like Bamboo which are starting to build transactional in memory object databases which can be faster than SQL Server but are essentially limited to the memory capacity of the machine - but this is fine for so many applications, provided you still have transactional integrity.