DataTableExtensions.AsEnumerable(DataTable) Metoda

Definicja

Zwraca obiekt IEnumerable<T>, gdzie T parametru generycznego jest DataRow.Returns an IEnumerable<T> object, where the generic parameter T is DataRow. Ten obiekt może być używany w wyrażeniu LINQLINQ lub kwerendzie metody.This object can be used in a LINQLINQ expression or method query.

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

DataTable źródłowa ma zostać wyliczalna.The source DataTable to make enumerable.

Zwraca

Obiekt IEnumerable<T>, gdzie T parametru generycznego jest DataRow.An IEnumerable<T> object, where the generic parameter T is DataRow.

Wyjątki

DataTable źródłowa jest null.The source DataTable is null.

Przykłady

W poniższym przykładzie metoda DisplayProducts otrzymuje element DataTable, który zawiera kolumnę danych o nazwie ProductName, wyodrębnia wartości ProductName, a następnie drukuje wartości.In the following sample, the DisplayProducts method receives a DataTable that contains a DataColumn named ProductName, extracts the ProductName values and then prints the values.

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

Uwagi

Zapytanie o języku zintegrowanym (LINQ)Language-Integrated Query (LINQ) zapytania pracują ze źródłami danych, które implementują interfejs IEnumerable<T> lub interfejs IQueryable.queries work on data sources that implement the IEnumerable<T> interface or the IQueryable interface. Klasa DataTable nie implementuje żadnego interfejsu, dlatego należy wywołać metodę AsEnumerable, aby użyć DataTable jako źródła w klauzuli From zapytania LINQLINQ.The DataTable class does not implement either interface, so you must call the AsEnumerable method to use the DataTable as a source in the From clause of a LINQLINQ query. Możesz również uzyskać niestandardowe operatory specyficzne dla domeny, takie jak CopyToDataTable, zwracając obiekt IEnumerable<T>.You can also obtain custom, domain-specific operators, such as CopyToDataTable, by returning an IEnumerable<T> object.

Wyliczalny obiekt zwrócony przez metodę AsEnumerable jest trwale powiązany z DataTable, który go wygenerował.The enumerable object returned by the AsEnumerable method is permanently bound to the DataTable that produced it. Wiele wywołań metody AsEnumerable zwróci wiele niezależnych obiektów queryable, które są powiązane ze źródłem DataTable.Multiple calls to the AsEnumerable method will return multiple, independent queryable objects that are all bound to the source DataTable.

Dotyczy