Sometime last year, while I wasn't paying attention, Microsoft announced something called LINQ. It stands for Language Integrated Query. You've seen this sort of thing before: you can embed a database query in your code and it gets compiled into something that queries the database and automatically stores the results in local variables. Never really took off.
LINQ is a little different. For one thing, you can query plain old boring in-memory data, including plain-vanilla arrays, with the same syntax. You can query XML documents the same way.
More to come.