DataTableExtensions.AsEnumerable(DataTable) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
回傳一個 IEnumerable<T> 物件,其中一般參數 T 為 DataRow。 此物件可用於 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)
參數
傳回
一個 IEnumerable<T> 物件,其中一般參數 T 為 DataRow。
例外狀況
來源 DataTable 為 null。
範例
在以下範例中,方法 DisplayProducts 接收一個包含名為 ProductName的資料欄位的資料表,擷取 ProductName 值後再列印。
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
備註
Language-Integrated 查詢 (LINQ) 查詢適用於實作 IEnumerable<T> 介面或 IQueryable 介面的數據源。 該 DataTable 類別並未實作任何介面,因此你必須呼叫 AsEnumerable 該方法,才能在 LINQ 查詢的子句中使用 作為 DataTable 來源 From 。 你也可以透過回IEnumerable<T>傳物件來獲得自訂的、領域特定的運算子,例如 CopyToDataTable。
方法回傳 AsEnumerable 的可枚舉物件會永久綁定到 DataTable 產生它的物件。 多次呼叫該 AsEnumerable 方法會回傳多個獨立且皆綁定到原始碼 DataTable的可查詢物件。