DataTableExtensions.AsEnumerable(DataTable) Yöntem

Tanım

Genel parametrenin IEnumerable<T>Tolduğu bir DataRow 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ı, IEnumerable<T> arabirimini veya IQueryable arabirimini uygulayan veri kaynakları üzerinde çalışır. DataTable sınıfı iki arabirimi de uygulamaz, bu nedenle linq sorgusunun yan tümcesinde AsEnumerable kaynak olarak kullanmak DataTable için yöntemini çağırmanız From gerekir. Ayrıca, bir CopyToDataTable nesne döndürerek gibi IEnumerable<T>etki alanına özgü özel işleçler de 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