i4o (index for objects) is the first class library that extends LINQ to allow you to put indexes on your objects. Using i4o, the speed of LINQ operations are often over one thousand times faster than without i4o.
i4o works by allowing the developer to specify an IndexSpecification<T> for any class, and then using the IndexableCollection<T> to implement a collection of that class that will use the index specification, rather than sequential search, when doing LINQ operations that can benefit from indexing.
i4o reduces the amount of code required to implement custom indexes in collections to mere specification of indexes for classes, while allowing LINQ queries over IndexableCollection<T> to automatically use the indexes where appropriate. i4o makes the idea of indexed LINQ not just a theory, but a "here and now" reality.
The latest project update is on Aaron's Blog at http://nomadic-developer.com/2010/03/02/i4o-v2/
The link below will describe different ways you can setup the IndexableCollection<T>'s indexes.http://staxmanade.blogspot.com/2008/12/i4o-indexspecification-for.html
The source for this is now being maintained on github https://github.com/ericksoa/i4o