DataTableExtensions.AsEnumerable(DataTable) Methode

Definition

Gibt ein IEnumerable<T>-Objekt zurück, bei dem der generische Parameter T gleich DataRow ist. Dieses Objekt kann in einer LINQ-Ausdrucks- oder Methodenabfrage verwendet werden.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Data::EnumerableRowCollection<System::Data::DataRow ^> ^ AsEnumerable(System::Data::DataTable ^ source);
public static System.Data.EnumerableRowCollection<System.Data.DataRow> AsEnumerable (this System.Data.DataTable source);
static member AsEnumerable : System.Data.DataTable -> System.Data.EnumerableRowCollection<System.Data.DataRow>
<Extension()>
Public Function AsEnumerable (source As DataTable) As EnumerableRowCollection(Of DataRow)

Parameter

source
DataTable

Die Quell-DataTable, die als aufzählbar festgelegt werden soll.

Gibt zurück

Ein IEnumerable<T>-Objekt bei dem der generische Parameter T den Wert DataRow hat.

Ausnahmen

Die Quell DataTable ist null.

Beispiele

Im folgenden Beispiel empfängt die DisplayProducts -Methode eine DataTable, die eine DataColumn mit dem Namen ProductNameenthält, extrahiert die ProductName Werte und druckt dann die Werte.

using System;
using System.Data;

class Program {
   public void DisplayProducts(DataTable table) {
      var productNames = from products in table.AsEnumerable() select products.Field<string>("ProductName");
      Console.WriteLine("Product Names: ");
      foreach (string productName in productNames) {
         Console.WriteLine(productName);
      }
   }

   static void Main(string[] args) {
      DataTable table = new DataTable();
      table.Columns.Add("ID");
      table.Columns.Add("ProductName");

      table.Rows.Add("1", "Chai");
      table.Rows.Add("2", "Queso Cabrales");
      table.Rows.Add("3", "Tofu");

      Program inst = new Program();
      inst.DisplayProducts(table);
   }
}
Imports System.Console

Module Module1
   Public Sub DisplayProducts(ByVal table As DataTable)
      Dim productNames = From products In table.AsEnumerable() Select products("ProductName")
      WriteLine("Product Names: ")
      For Each productName In productNames
         WriteLine(productName)
       Next
   End Sub

   Sub Main()
      Dim table As DataTable = New DataTable()
      table.Columns.Add("ID")
      table.Columns.Add("ProductName")

      table.Rows.Add("1", "Chai")
      table.Rows.Add("2", "Queso Cabrales")
      table.Rows.Add("3", "Tofu")

      DisplayProducts(table)
   End Sub
End Module

Hinweise

LINQ-Abfragen (Language-Integrated Query) arbeiten an Datenquellen, die die IEnumerable<T>-Schnittstelle oder die IQueryable-Schnittstelle implementieren. Die DataTable -Klasse implementiert keine Schnittstelle, sodass Sie die AsEnumerable -Methode aufrufen müssen, um in der DataTableFrom -Klausel einer LINQ-Abfrage als Quelle zu verwenden. Sie können auch benutzerdefinierte domänenspezifische Operatoren wie CopyToDataTableabrufen, indem Sie ein IEnumerable<T> -Objekt zurückgeben.

Das von der AsEnumerable -Methode zurückgegebene aufzählbare Objekt ist dauerhaft an das gebunden, das DataTable es erzeugt hat. Mehrere Aufrufe der AsEnumerable -Methode geben mehrere unabhängige abfragbare Objekte zurück, die alle an die Quelle DataTablegebunden sind.

Gilt für: