DataTableExtensions.AsEnumerable(DataTable) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce un oggetto IEnumerable<T>, in cui il parametro generico T
è DataRow. Questo oggetto può essere usato in un'espressione LINQ o in una query del metodo.
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)
Parametri
Restituisce
Oggetto IEnumerable<T>, in cui il parametro generico T
è DataRow.
Eccezioni
L'oggetto DataTable di origine è null
.
Esempio
Nell'esempio seguente, il DisplayProducts
metodo riceve una tabella DataTable contenente un oggetto DataColumn denominato ProductName
, estrae i ProductName
valori e quindi stampa i valori.
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
Commenti
Language-Integrated query LINQ (Query) funzionano sulle origini dati che implementano l'interfaccia IEnumerable<T> o l'interfaccia IQueryable . La DataTable classe non implementa alcuna interfaccia, pertanto è necessario chiamare il AsEnumerable metodo per usare DataTable come origine nella From
clausola di una query LINQ. È anche possibile ottenere operatori personalizzati specifici del dominio, ad esempio CopyToDataTable, restituendo un IEnumerable<T> oggetto .
L'oggetto enumerabile restituito dal AsEnumerable metodo è associato in modo permanente all'oggetto DataTable che lo ha prodotto. Più chiamate al AsEnumerable metodo restituiscono più oggetti queryable indipendenti associati all'origine DataTable.