同じ構造の DataTables のデータセットがあります。SINGLE linq クエリでこれらのテーブルから DataRows の単一のコレクションを取得したい
from sourceTab in ds.Tables.OfType<DataTable>()
select sourceTab
次に、各テーブルからデータ行を選択し、それらを 1 つのリストに結合する必要があります
そのためにクエリ構文は必要ありません。単純なメソッドクエリで問題ありません。
var results = ds.Tables.Cast<DataTable>().SelectMany(t => t.AsEnumerable())
で試してみてCast<T>
くださいSelectMany<T>
var r = ds.Tables.Cast<DataTable>().SelectMany(n => n.AsEnumerable())
SelectMany
各テーブルからすべての行を選択し、それらを 1 つのシーケンスにフラット化するために使用します。
from row in ds.Tables.Cast<DataTable>().SelectMany(t => t.AsEnumerable())
// filter, etc
select row
すべての行が必要な場合は、次を使用します
ds.Tables.Cast<DataTable>().SelectMany(t => t.AsEnumerable())