DataTableExtensions.AsEnumerable(DataTable) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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 ProductName
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
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.