C# 组合多个数据表数据行

C# 组合多个数据表数据行,c#,linq,C#,Linq,我有一个具有相同结构的数据表数据集。我想在singlelinq查询中从这些表中获取单个数据行集合 from sourceTab in ds.Tables.OfType<DataTable>() select sourceTab 来自ds.Tables.OfType()中的sourceTab 选择sourceTab 然后,我需要从每个表中选择数据行并将它们合并到一个列表中使用SelectMany从每个表中选择所有行并将它们展平为一个序列: from row in ds.Table

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

from sourceTab in ds.Tables.OfType<DataTable>() 
select sourceTab
来自ds.Tables.OfType()中的sourceTab
选择sourceTab

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

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

from row in ds.Tables.Cast<DataTable>().SelectMany(t => t.AsEnumerable())
// filter, etc 
select row
来自ds.Tables.Cast()中的行。SelectMany(t=>t.AsEnumerable())
//过滤器等
选择行
如果只需要所有行,则使用

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

这样做不需要查询语法。简单方法查询就可以了:

var results = ds.Tables.Cast<DataTable>().SelectMany(t => t.AsEnumerable())
var results=ds.Tables.Cast().SelectMany(t=>t.AsEnumerable())
尝试使用和

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