Partager via


DataTableExtensions.AsEnumerable(DataTable) Méthode

Définition

Retourne un objet IEnumerable<T> où le paramètre générique T est DataRow. Cet objet peut être utilisé dans une expression LINQ ou une requête de méthode.

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)

Paramètres

source
DataTable

DataTable source à rendre énumérable.

Retours

Objet IEnumerable<T> où le paramètre générique T est DataRow.

Exceptions

Le DataTable source est null.

Exemples

Dans l’exemple suivant, la DisplayProducts méthode reçoit un DataTable qui contient un DataColumn nommé ProductName, extrait les ProductName valeurs, puis imprime les valeurs.

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

Remarques

Les requêtes LINQ (Language-Integrated Query) fonctionnent sur des sources de données qui implémentent l’interface IEnumerable<T> ou l’interface IQueryable. La DataTable classe n’implémentant aucune des deux interfaces, vous devez donc appeler la AsEnumerable méthode pour utiliser comme DataTable source dans la From clause d’une requête LINQ. Vous pouvez également obtenir des opérateurs personnalisés spécifiques au domaine, tels que CopyToDataTable, en retournant un IEnumerable<T> objet .

L’objet énumérable retourné par la AsEnumerable méthode est lié de façon permanente au qui l’a DataTable produit. Plusieurs appels à la AsEnumerable méthode retournent plusieurs objets interrogeables indépendants qui sont tous liés à la source DataTable.

S’applique à