Today, someone asked on an internal mailing list, what does LINQ offer, than I cannot do with DataSet.Select()?
Luca Bolognese, my compadre from the old country, provided a clear and insightful response. Just for some background - LINQ is a codename for a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. Language-integrated query means, the query "verb" is built-in to the language itself. It is not a query library; it is integrated into the language. So you can do queries across in-memory graph of objects, as easily as you might send a query to a database to retrieve results. Here is Luca's response:
[DataSet.Select() and LINQ] are very different.
If you know at compile time the structure of your query and you are working with datasets, I suggest you investigate “LINQ to DataSet”.
By the way, here's the blog post he mentioned, LINQ-to-DataSet.