So i was digging through some old posts of Adam’s and found one where he’s pointing to article on MSDN on the new language features in C# 3.0.
It got me thinking about how you can bring some of those features down to C# 2.0 and I came up with the concept of a RichEnumerable.
This type can be used for querying using specifications.
The interface implements the IEnumerable interface but extends it with a "Where" method.
The implementation so far looks like this.
This could be extended further to return a RichEnumerable from the where method instead of an IEnumerable so you can filter further.