DataTableExtensions.AsEnumerable(DataTable) Yöntem

Tanım

Genel parametrenin T olduğu DataRowbir IEnumerable<T> nesnesi döndürür. Bu nesne bir LINQ ifadesinde veya yöntem sorgusunda kullanılabilir.

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)

Parametreler

source
DataTable

Numaralandırılabilir yapmak için kaynak DataTable .

Döndürülenler

IEnumerable<T> Genel parametrenin T olduğu bir nesne.DataRow

Özel durumlar

Örnekler

Aşağıdaki örnekte, DisplayProducts yöntemi adlı ProductNamebir DataColumn içeren bir DataTable alır, değerleri ayıklar ProductName ve sonra değerleri yazdırır.

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

Açıklamalar

Language-Integrated Sorgu (LINQ) sorguları, arabirimi veya IQueryable arabirimi uygulayan IEnumerable<T> veri kaynakları üzerinde çalışır. DataTable sınıfı iki arabirimi de uygulamaz, bu nedenle bir LINQ sorgusunun AsEnumerable yan tümcesinde From kaynak olarak kullanmak DataTable için yöntemini çağırmanız gerekir. Bir nesnesi döndürerek IEnumerable<T> gibi özel, etki alanına özgü işleçler CopyToDataTablede elde edebilirsiniz.

yöntemi tarafından AsEnumerable döndürülen numaralandırılabilir nesne, onu üretene DataTable kalıcı olarak bağlıdır. yöntemine yapılan AsEnumerable birden çok çağrı, tümü kaynağa DataTablebağlı olan birden çok bağımsız sorgulanabilir nesne döndürür.

Şunlara uygulanır