Collecting Things

After using .NET 2.0 for the last few months, I'm very happy with it. Especially with generics. With .NET 1.1, there were a few things that the built-in collections did rather poorly. But .NET 2.0 generic collections like List<t> and Collection<t> are almost perfect. (with the glaring exception that Collection<t> is missing a virtual GetItem(int) member. Some of the oddities about the Collection<T> design are explained in this blog entry.

At first, I had found the PowerCollections project (which now requires registration), and thought that it would be totally invaluable to my development efforts. Now I find that I don't even think about it. The built-in collections are great!

Now I stumble accross another collection project. The C5collections at first appear to be much more specialized implementations, but lack the flexibility, power and sheer feature count that the PowerCollections have. But if you know which collection algorithm will solve your use-case best, then you could fine-tune your application much more precisely using the C5 collections.

It sure would have been nice if you could "plug-in" different collection logic into the built-in .NET collections. But that probably would have slowed them down unnecessarily. Oh well. I'm happy with what I've got. But it's nice to know that there are other alternatives out there.