DataTableExtensions.AsEnumerable(DataTable) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve un objeto IEnumerable<T>, donde el parámetro T
genérico es DataRow. Este objeto se puede usar en una consulta de método o expresión LINQ.
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)
Parámetros
Devoluciones
Objeto IEnumerable<T>, donde el parámetro T
genérico es DataRow.
Excepciones
El valor del objeto DataTable de origen es null
.
Ejemplos
En el ejemplo siguiente, el DisplayProducts
método recibe una DataTable que contiene un objeto DataColumn denominado ProductName
, extrae los ProductName
valores y, a continuación, imprime los valores.
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
Comentarios
Las consultas de Language Integrated Query (LINQ) funcionan en orígenes de datos que implementan la interfaz IEnumerable<T> o IQueryable. La DataTable clase no implementa ninguna interfaz, por lo que debe llamar al AsEnumerable método para usar como DataTable origen en la From
cláusula de una consulta LINQ. También puede obtener operadores personalizados específicos del dominio, como CopyToDataTable, devolviendo un IEnumerable<T> objeto .
El objeto enumerable devuelto por el AsEnumerable método se enlaza permanentemente al DataTable objeto que lo generó. Varias llamadas al AsEnumerable método devolverán varios objetos consultables independientes que están enlazados al origen DataTable.