DataTableExtensions.AsEnumerable(DataTable) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Devolve um IEnumerable<T> objeto, onde o parâmetro T genérico é DataRow. Este objeto pode ser usado numa consulta de expressão ou método 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
Devoluções
Um IEnumerable<T> objeto, onde o parâmetro T genérico é DataRow.
Exceções
A fonte DataTable é null.
Exemplos
No exemplo seguinte, o DisplayProducts método recebe um DataTable que contém uma DataColumn chamada ProductName, extrai os ProductName valores e depois imprime os 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
Observações
As consultas Language-Integrated Query (LINQ) funcionam em fontes de dados que implementam a interface IEnumerable<T> ou a interface IQueryable. A DataTable classe não implementa nenhuma das interfaces, por isso deve chamar o AsEnumerable método para usar o DataTable como fonte na From cláusula de uma consulta LINQ. Também pode obter operadores personalizados e específicos de domínio, como CopyToDataTable, ao devolver um IEnumerable<T> objeto.
O objeto enumerável devolvido pelo AsEnumerable método está permanentemente ligado ao DataTable que o produziu. Múltiplas chamadas ao AsEnumerable método retornarão múltiplos objetos consultáveis independentes que estão todos ligados à fonte DataTable.