DataTableExtensions.AsEnumerable(DataTable) Methode

Definitie

Retourneert een IEnumerable<T> object, waarbij de algemene parameter T zich bevindt DataRow. Dit object kan worden gebruikt in een LINQ-expressie of methodequery.

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)

Parameters

source
DataTable

De bron DataTable die kan worden opgesomd.

Retouren

Een IEnumerable<T> object, waarbij de algemene parameter T is DataRow.

Uitzonderingen

De bron DataTable is null.

Voorbeelden

In het volgende voorbeeld ontvangt de DisplayProducts methode een gegevenstabel die een DataColumn met de naam ProductNameDataColumn bevat, worden de ProductName waarden geëxtraheerd en worden de waarden vervolgens afgedrukt.

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

Opmerkingen

Language-Integrated Query's (LINQ) werken met bronnen die de IEnumerable<T> interface of de IQueryable interface implementeren. De DataTable klasse implementeert geen van beide interfaces, dus u moet de methode aanroepen om de DataTableAsEnumerable als bron in de From component van een LINQ-query te gebruiken. U kunt ook aangepaste, domeinspecifieke operators, zoals CopyToDataTable, verkrijgen door een IEnumerable<T> object te retourneren.

Het door de AsEnumerable methode geretourneerde enumerable object is permanent gebonden aan het DataTable object dat is geproduceerd. Meerdere aanroepen naar de AsEnumerable methode retourneren meerdere, onafhankelijke, doorzoekbare objecten die allemaal aan de bron DataTablezijn gebonden.

Van toepassing op