DataTableExtensions.AsEnumerable(DataTable) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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.