Share via


DataTableExtensions.AsEnumerable(DataTable) Metode

Definisi

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

source
DataTable

Sumber DataTable untuk membuat enumerable.

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.

Berlaku untuk