DataTableExtensions.AsEnumerable(DataTable) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengembalikan IEnumerable<T> objek, di mana parameter T
generik adalah DataRow. Objek ini dapat digunakan dalam ekspresi LINQ atau kueri metode.
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
Mengembalikan
Objek IEnumerable<T> , di mana parameter T
generik adalah DataRow.
Pengecualian
Sumbernya DataTable adalah null
.
Contoh
Dalam sampel berikut, DisplayProducts
metode menerima DataTable yang berisi DataColumn bernama ProductName
, mengekstrak ProductName
nilai lalu mencetak nilai.
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
Keterangan
Kueri Language-Integrated Query (LINQ) berfungsi pada sumber data yang mengimplementasikan antarmuka IEnumerable<T> atau antarmuka IQueryable. Kelas DataTable tidak mengimplementasikan salah satu antarmuka, jadi Anda harus memanggil AsEnumerable metode untuk menggunakan DataTable sebagai sumber dalam From
klausa kueri LINQ. Anda juga dapat memperoleh operator kustom khusus domain, seperti CopyToDataTable, dengan mengembalikan IEnumerable<T> objek .
Objek enumerable yang dikembalikan oleh AsEnumerable metode secara permanen terikat dengan DataTable yang menghasilkannya. Beberapa panggilan ke AsEnumerable metode akan mengembalikan beberapa objek independen yang dapat dikueri yang semuanya terikat ke sumber DataTable.