我们可以为实现IEnumerable <T>或 IQueryable <T>接口的类编写LINQ查询。System.Linq的命名空间包括下列类和接口要求对LINQ查询。
LINQ查询对实现IEnumerable或IQueryable接口的类使用扩展方法。Enumerable和Queryable是两个静态类,它们包含编写LINQ查询的扩展方法。
Enumerable类包括用于实现IEnumerable<T>接口的类的扩展方法,例如,所有内置集合类都实现了IEnumerable<T>接口,因此我们可以编写LINQ查询来从内置集合中检索数据。
下图显示了Enumerable类中包含的扩展方法,可以与C#或VB.Net中的泛型集合一起使用。
下图显示了Enumerable该类中所有可用的扩展方法。
Enumerable 类
Queryable类包含用于实现成员“> IQueryable <t>接口的类的扩展方法。该IQueryable<T>接口用于提供针对已知数据类型的特定数据源的查询功能,例如,Entity Framework api实现了IQueryable<T>针对通过底层数据库(例如MS SQL Server)支持LINQ查询。
此外,还有一些API可用于访问第三方数据。例如,LINQ to Amazon提供了将LINQ与Amazon Web服务结合使用以搜索书籍和其他物品的功能。这可以通过IQueryable为Amazon实现接口来实现。
下图显示了Queryable该类中可用的扩展方法,可以与各种本机或第三方数据提供程序一起使用。
下图显示了Queryable该类中可用的扩展方法。
使用 System.LINQ 命名空间来使用 LINQ。
LINQ api包括两个主要的静态类Enumerable 和 Queryable。
静态Enumerable类包括用于实现IEnumerable <T>接口的类的扩展方法。
IEnumerable <T>集合的类型是内存中的集合,例如List,Dictionary,SortedList,Queue,HashSet,LinkedList。
静态Queryable类包括用于实现IQueryable <T>接口的类的扩展方法。
远程查询提供程序实现了例如Linq-to-SQL,LINQ-to-Amazon等。