語言集成查詢(Language-Integrated Query),簡稱LINQ,.NET中的LINQ體系如下圖所示:


 

在編程語言層次,LINQ對于不同的數據源提供了相同的查詢語法,方便了程序員操作不同的數據源。

可查詢類型

LINQ之所以能夠使用相同的語法操作不同的數據源,是因為和LINQ直接打交道的是可查詢類型而非數據源,在LINQ中,直接或間接實現了IEnumerable<T>接口的類型稱為可查詢類型, .NET中如:List<T>,Dictionary<TKey,TValue>,數組(由CLR負責隱式實現IEnumerable<T>接口)等,實現了IEnumerable<T>接口。
IQueryable<out T>繼承自IEnumerable<T>,是個標記接口。

可查詢類型無需額外操作即可進行LINQ操作,若數據源在內存中不以可查詢類型的形式存在,那么LINQ提供程序必須要先將數據源轉換為可查詢類型,如LINQ to XML將XML文件轉換為可查詢的XElement類型:
 XElement contacts = XElement.Load(@"c:\myContactList.xml"<

網友評論