My colleague Kevin Hoffman has been working on an interesting project called CLinq or Continuous Linq. It is open-source and hosted on Codeplex. In Kevin’s own words
LINQ is a fantastic new addition to the arsenal of .NET programmers everywhere. It gives us the ability to declaratively define the information we want, and how we want that information to look when we get it. The problem is that these LINQ queries are static. You run them once and they become detached from the source collection. Continuous LINQ (http://www.codeplex.com/clinq) is a project that adds extensions to LINQ that make these queries continuous - simply define a query against an observable source collection and the results of your query will continue to automatically update as changes occur in the source. This is a powerful addition to the tools library of any developer working with dynamic, frequently changing data that is being bound to a WPF GUI.
We are using it internally and find it very useful. Check it out !
Continuous Linq: http://www.codeplex.com/clinq