DataTableExtensions.AsEnumerable(DataTable) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar ett IEnumerable<T> objekt där den generiska parametern T är DataRow. Det här objektet kan användas i ett LINQ-uttryck eller en metodfråga.
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)
Parametrar
Returer
Ett IEnumerable<T> objekt där den generiska parametern T är DataRow.
Undantag
Källan DataTable är null.
Exempel
I följande exempel DisplayProducts tar metoden emot en DataTable som innehåller en DataColumn med namnet ProductName, extraherar ProductName värdena och skriver sedan ut värdena.
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
Kommentarer
Language-Integrated LINQ-frågor fungerar på datakällor som implementerar IEnumerable<T>-gränssnittet eller IQueryable-gränssnittet. Klassen DataTable implementerar inte något av gränssnitten AsEnumerable , så du måste anropa metoden för att använda DataTable som källa i -satsen i From en LINQ-fråga. Du kan också hämta anpassade, domänspecifika operatorer, till exempel CopyToDataTable, genom att returnera ett IEnumerable<T> objekt.
Det uppräkningsbara objekt som returneras av AsEnumerable metoden är permanent bundet DataTable till det som skapade det. Flera anrop till AsEnumerable metoden returnerar flera oberoende frågebara objekt som alla är bundna till källan DataTable.