结合类似DataTables的列表

时间:2012-06-28 16:31:10

标签: c# linq

我知道这可以通过一些硬编码的Linq Joins手动完成。但是,由于我拥有大量的.csv文件,我会喜欢提出一种优雅的方式来批量执行此操作。

代码:

var dir = Directory.EnumerateFiles(@"C:\IIP_2\", "*.csv", SearchOption.AllDirectories);
var dtCombined = new DataTable();
var lst = new List<DataTable>();

foreach (var v in dir) { lst.Add(GetCSVRows(v, true)); }

//Take List<DataTable> and combine into dtCombined ????

如何将此List合并为一个,可能与Lambda语句结合使用?

提前致谢!

1 个答案:

答案 0 :(得分:3)

这对你有用吗?您应该可以完全避免使用DataTable列表。

foreach (var v in dir) 
{ 
    dtCombined.Merge(GetCSVRows(v, true)); 
}

如果您更改GetCSVRows以返回IDataReader,则可以使用Load可能更快。

foreach (var v in dir) 
{ 
    dtCombined.Load(GetCSVRows(v, true)); 
}