DataTableExtensions.AsEnumerable(DataTable) Metoda

Definice

IEnumerable<T> Vrátí objekt, kde obecný parametr T je DataRow. Tento objekt lze použít ve výrazu LINQ nebo dotazu metody.

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)

Parametry

source
DataTable

Zdroj DataTable , který se má vytvořit jako výčet.

Návraty

Objekt IEnumerable<T> , kde obecný parametr T je DataRow.

Výjimky

Příklady

V následující ukázce DisplayProducts metoda obdrží DataTable, která obsahuje objekt DataColumn s názvem ProductName, extrahuje ProductName hodnoty a pak hodnoty vytiskne.

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

Poznámky

dotazy Language-Integrated Query (LINQ) fungují na zdrojích dat, které implementují IEnumerable<T> rozhraní nebo IQueryable rozhraní. Třída DataTable neimplementuje ani rozhraní, takže je nutné volat metodu AsEnumerable , která použije DataTable jako zdroj v klauzuli From dotazu LINQ. Můžete také získat vlastní operátory specifické pro doménu, například CopyToDataTable, vrácením objektu IEnumerable<T> .

Objekt vrácený metodou AsEnumerable je trvale vázán na DataTable objekt, který ho vytvořil. Více volání AsEnumerable metody vrátí více nezávislých dotazovatelných objektů, které jsou všechny vázané na zdroj DataTable.

Platí pro