DataTableExtensions.AsEnumerable(DataTable) Metoda
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
IEnumerable<T> Zwraca obiekt, w którym parametr T
ogólny to DataRow. Ten obiekt może być używany w wyrażeniu LINQ lub zapytaniu metody.
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)
Obiekt IEnumerable<T> , w którym parametr T
ogólny to DataRow.
DataTable Źródłem jest null
.
W poniższym przykładzie DisplayProducts
metoda odbiera tabelę DataTable zawierającą kolumnę DataColumn o nazwie ProductName
, wyodrębnia wartości, a następnie drukuje ProductName
wartości.
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
zapytania Language-Integrated Query (LINQ) działają na źródłach danych, które implementują IEnumerable<T> interfejs lub IQueryable interfejs. Klasa DataTable nie implementuje interfejsu, dlatego należy wywołać AsEnumerable metodę , aby użyć DataTable metody jako źródła w From
klauzuli zapytania LINQ. Można również uzyskać niestandardowe, specyficzne dla domeny operatory, takie jak CopyToDataTable, zwracając IEnumerable<T> obiekt.
Obiekt wyliczalny zwrócony przez metodę AsEnumerable jest trwale powiązany z utworzonym obiektem DataTable . Wiele wywołań metody AsEnumerable zwróci wiele niezależnych obiektów, które są powiązane ze źródłem DataTable.
Produkt | Wersje |
---|---|
.NET | Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.1 |
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: