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
の DataColumn を含む DataTable を受け取り、値を 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 どちらのインターフェイスも実装していないため、LINQ クエリの AsEnumerable 句で をソースとして使用 DataTable するには、 メソッドを From
呼び出す必要があります。 オブジェクトを返すことによって、 などの CopyToDataTableカスタムのドメイン固有の演算子を IEnumerable<T> 取得することもできます。
メソッドによって AsEnumerable 返される列挙可能なオブジェクトは、それを生成した に DataTable 永続的にバインドされます。 メソッドを AsEnumerable 複数回呼び出すと、ソース DataTableにバインドされている複数の独立したクエリ可能オブジェクトが返されます。
適用対象
.NET