我們可以為實現(xiàn)IEnumerable <T>或 IQueryable <T>接口的類編寫LINQ查詢。System.Linq的命名空間包括下列類和接口要求對LINQ查詢。
LINQ查詢對實現(xiàn)IEnumerable或IQueryable接口的類使用擴展方法。Enumerable和Queryable是兩個靜態(tài)類,它們包含編寫LINQ查詢的擴展方法。
Enumerable類包括用于實現(xiàn)IEnumerable<T>接口的類的擴展方法,例如,所有內(nèi)置集合類都實現(xiàn)了IEnumerable<T>接口,因此我們可以編寫LINQ查詢來從內(nèi)置集合中檢索數(shù)據(jù)。
下圖顯示了Enumerable類中包含的擴展方法,可以與C#或VB.Net中的泛型集合一起使用。
下圖顯示了Enumerable該類中所有可用的擴展方法。
Enumerable 類
Queryable類包含用于實現(xiàn)成員“> IQueryable <t>接口的類的擴展方法。該IQueryable<T>接口用于提供針對已知數(shù)據(jù)類型的特定數(shù)據(jù)源的查詢功能,例如,Entity Framework api實現(xiàn)了IQueryable<T>針對通過底層數(shù)據(jù)庫(例如MS SQL Server)支持LINQ查詢。
此外,還有一些API可用于訪問第三方數(shù)據(jù)。例如,LINQ to Amazon提供了將LINQ與Amazon Web服務(wù)結(jié)合使用以搜索書籍和其他物品的功能。這可以通過IQueryable為Amazon實現(xiàn)接口來實現(xiàn)。
下圖顯示了Queryable該類中可用的擴展方法,可以與各種本機或第三方數(shù)據(jù)提供程序一起使用。
下圖顯示了Queryable該類中可用的擴展方法。
使用 System.LINQ 命名空間來使用 LINQ。
LINQ api包括兩個主要的靜態(tài)類Enumerable 和 Queryable。
靜態(tài)Enumerable類包括用于實現(xiàn)IEnumerable <T>接口的類的擴展方法。
IEnumerable <T>集合的類型是內(nèi)存中的集合,例如List,Dictionary,SortedList,Queue,HashSet,LinkedList。
靜態(tài)Queryable類包括用于實現(xiàn)IQueryable <T>接口的類的擴展方法。
遠程查詢提供程序?qū)崿F(xiàn)了例如Linq-to-SQL,LINQ-to-Amazon等。