English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

LINQ API (.Net)

Wir können LINQ-Abfragen für Klassen schreiben, die das IEnumerable <T> oder IQueryable <T>-Interface implementieren.System.LinqDer Namensraum enthält die folgenden Klassen und Interfaces, die für LINQ-Abfragen erforderlich sind.

LINQ API
 Bei der Hinzufügung neuer Klassen in Visual Studio wird standardmäßig der Namensraum System.Linq enthalten.

LINQ-Abfragen verwenden erweiterte Methoden für Klassen, die das IEnumerable oder IQueryable-Interface implementieren. Enumerable und Queryable sind zwei statische Klassen, die erweiterte Methoden für die Erstellung von LINQ-Abfragen enthalten.

Klassische Auflistung (Enumerable)

Die Enumerable-Klasse enthält erweiterte Methoden für Klassen, die das IEnumerable<T>-Interface implementieren, z.B. haben alle eingebauten Sammlungs-Klassen das IEnumerable<T>-Interface implementiert, daher können wir LINQ-Abfragen schreiben, um Daten aus eingebauten Sammlungen abzurufen.

Das Diagramm zeigt die erweiterten Methoden der Enumerable-Klasse, die mit generischen Sammlungen in C# oder VB.Net verwendet werden können.

以下图显示了 Enumerable 类中所有可用的扩展方法。

Enumerable 类

可查询 (Queryable)

Queryable 类包含用于实现成员 “> IQueryable <t> 接口的类的扩展方法。IQueryable<T> 接口用于提供针对已知数据类型的特定数据源的查询功能,例如,Entity Framework api 实现了 IQueryable<T> 针对通过底层数据库(例如 MS SQL Server)支持 LINQ 查询。

此外,还有一些 API 可用于访问第三方数据。例如,LINQ to Amazon 提供了将 LINQ 与 Amazon Web 服务结合使用以搜索书籍和其他物品的功能。这可以通过为 Amazon 实现 IQueryable 接口来实现。

以下图显示了 Queryable 类中可用的扩展方法,可以与各种本机或第三方数据提供程序一起使用。

以下图显示了 Queryable 类中可用的扩展方法。

Queryable 类

  要记住的要点

  1. 使用 System.LINQ 命名空间来使用 LINQ。

  2. LINQ api 包括两个主要的静态类 Enumerable 和 Queryable。

  3. 静态 Enumerable 类包括用于实现 IEnumerable <T> 接口的类的扩展方法。

  4. IEnumerable <T> 集合的类型是内存中的集合,例如 List,Dictionary,SortedList,Queue,HashSet,LinkedList。

  5. 静态 Queryable 类包括用于实现 IQueryable <T> 接口的类的扩展方法。

  6. 远程查询提供程序实现了例如 Linq-到-SQL,LINQ-到-Amazon 等。