Language Integrated Query (LINQ) isa new way to accessdata from many different sources. LINQ provides a single querying model that can operate against different data domainsindividually or all together in a single query. LINQ bringsthe ability to query data to .NET languages, and some of the languages have provided extensions to make its use even more intuitive. One of these languages is C#; there are a number of extensions to the language in C# 3.0 that help to facilitate querying in a rich and intuitive manner. Traditional object-oriented programming is based on an imperative style wherein the developer describes in detail not only what they want to happen, but also describes a majority of the detail regarding exactly how thiss hould be performed through code. LINQ helpsto take coding down a more declarative path that facilitatesdes cribing what the developer wants to do instead of describing how to accomplish the goal in detail. LINQ also enables a more functional style of programming. These changes can dramatically shorten the amount of code it takes to perform some tasks. That said, object-oriented programming is still very much alive and well in C# and .NET, but for the first time the language is offering the chance to choose the style of programming based on your needs. Note, however, that LINQ will not fit into every scenario and isnot a replacement for good design or practice. You can write bad code using LINQ just as you can write bad object-oriented or procedural code. The trick, like it alwayshasbeen, isto figure out when it isappropriate to use which technique. The initial version of LINQ encompasses a number of data domains as listed here: