DataTableExtensions.AsEnumerable(DataTable) Metoda

Definice

IEnumerable<T> Vrátí objekt, kde je Tobecný parametr 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 pro vytvoření výčtu.

Návraty

ObjektIEnumerable<T>, kde je Tobecný parametr DataRow .

Výjimky

Příklady

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

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

Language-Integrated Dotazy (LINQ) pracují 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á se má použít DataTable jako zdroj v From klauzuli dotazu LINQ. Můžete také získat vlastní operátory specifické pro doménu, například CopyToDataTablevrácením objektu IEnumerable<T> .

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

Platí pro