DataTableExtensions.AsEnumerable(DataTable) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
IEnumerable<T> Vrátí objekt, kde obecný parametr T
je DataRow. Tento objekt lze použít ve výrazu LINQ nebo dotazu 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)
Parametry
Návraty
Objekt IEnumerable<T> , kde obecný parametr T
je DataRow.
Výjimky
Zdroj DataTable je null
.
Příklady
V následující ukázce DisplayProducts
metoda obdrží DataTable, která obsahuje objekt DataColumn s názvem ProductName
, extrahuje ProductName
hodnoty a pak hodnoty vytiskne.
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
Poznámky
dotazy Language-Integrated Query (LINQ) fungují na zdrojích dat, které implementují IEnumerable<T> rozhraní nebo IQueryable rozhraní. Třída DataTable neimplementuje ani rozhraní, takže je nutné volat metodu AsEnumerable , která použije DataTable jako zdroj v klauzuli From
dotazu LINQ. Můžete také získat vlastní operátory specifické pro doménu, například CopyToDataTable, vrácením objektu IEnumerable<T> .
Objekt vrácený metodou AsEnumerable je trvale vázán na DataTable objekt, který ho vytvořil. Více volání AsEnumerable metody vrátí více nezávislých dotazovatelných objektů, které jsou všechny vázané na zdroj DataTable.