DataTableExtensions.AsEnumerable(DataTable) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Genel parametrenin T
olduğu DataRowbir IEnumerable<T> nesnesi döndürür. Bu nesne bir LINQ ifadesinde veya yöntem sorgusunda kullanılabilir.
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)
Parametreler
Döndürülenler
IEnumerable<T> Genel parametrenin T
olduğu bir nesne.DataRow
Özel durumlar
Kaynak DataTable : null
.
Örnekler
Aşağıdaki örnekte, DisplayProducts
yöntemi adlı ProductName
bir DataColumn içeren bir DataTable alır, değerleri ayıklar ProductName
ve sonra değerleri yazdırır.
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
Açıklamalar
Language-Integrated Sorgu (LINQ) sorguları, arabirimi veya IQueryable arabirimi uygulayan IEnumerable<T> veri kaynakları üzerinde çalışır. DataTable sınıfı iki arabirimi de uygulamaz, bu nedenle bir LINQ sorgusunun AsEnumerable yan tümcesinde From
kaynak olarak kullanmak DataTable için yöntemini çağırmanız gerekir. Bir nesnesi döndürerek IEnumerable<T> gibi özel, etki alanına özgü işleçler CopyToDataTablede elde edebilirsiniz.
yöntemi tarafından AsEnumerable döndürülen numaralandırılabilir nesne, onu üretene DataTable kalıcı olarak bağlıdır. yöntemine yapılan AsEnumerable birden çok çağrı, tümü kaynağa DataTablebağlı olan birden çok bağımsız sorgulanabilir nesne döndürür.