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

EnumerableRowCollection<DataRow>

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 einen DataColumn mit dem Namen " ProductNameDataColumn" enthä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

Language-Integrated Abfrageabfragen (LINQ) arbeiten an Datenquellen, die die IEnumerable<T> Schnittstelle oder die IQueryable Schnittstelle implementieren. Die DataTable Klasse implementiert keine Schnittstelle, daher müssen Sie die AsEnumerable Methode aufrufen, um die DataTable Als Quelle in der From Klausel einer LINQ-Abfrage zu verwenden. Sie können auch benutzerdefinierte, domänenspezifische Operatoren abrufen, z CopyToDataTable. B. , indem Sie ein IEnumerable<T> Objekt zurückgeben.

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

Gilt für