组合几个DataTables DataRows

时间:2013-03-20 09:49:37

标签: c# linq

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

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

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

3 个答案:

答案 0 :(得分: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())

答案 1 :(得分:2)

您不需要查询语法来执行此操作。简单的方法查询很好:

var results = ds.Tables.Cast<DataTable>().SelectMany(t => t.AsEnumerable())

答案 2 :(得分:2)

尝试使用Cast<T>SelectMany<T>

var r = ds.Tables.Cast<DataTable>().SelectMany(n => n.AsEnumerable())