3

我有一个具有相同结构的 DataTables 数据集。我想在SINGLE linq 查询中从这些表中获取单个 DataRows 集合

from sourceTab in ds.Tables.OfType<DataTable>() 
select sourceTab

然后我需要从每个表中选择数据行并将它们组合成一个列表

4

3 回答 3

2

用于SelectMany从每个表中选择所有行并将它们展平为一个序列:

from row in ds.Tables.Cast<DataTable>().SelectMany(t => t.AsEnumerable())
// filter, etc 
select row

如果您只想要所有行,请使用

ds.Tables.Cast<DataTable>().SelectMany(t => t.AsEnumerable())
于 2013-03-20T09:51:35.393 回答
2

你不需要查询语法来做到这一点。简单的方法查询就可以了:

var results = ds.Tables.Cast<DataTable>().SelectMany(t => t.AsEnumerable())
于 2013-03-20T09:52:20.950 回答
2

尝试Cast<T>SelectMany<T>

var r = ds.Tables.Cast<DataTable>().SelectMany(n => n.AsEnumerable())
于 2013-03-20T09:53:32.043 回答