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
, 方法接收一个 DataTable,其中包含名为 ProductName
的 DataColumn,提取 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
注解
语言集成查询 (LINQ) 查询可用于实现 IEnumerable<T> 接口或 IQueryable 接口的数据源。 类 DataTable 不实现任一接口,因此必须调用 AsEnumerable 方法才能在 DataTable LINQ 查询的 子句中使用 From
作为源。 还可以通过返回 IEnumerable<T> 对象来获取特定于域的自定义运算符,例如 CopyToDataTable。
方法返回 AsEnumerable 的可枚举对象永久绑定到 DataTable 生成它的 。 对 方法的 AsEnumerable 多次调用将返回多个独立的可查询对象,这些对象全部绑定到源 DataTable。