我知道这可以通过一些硬编码的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语句结合使用?
提前致谢!
答案 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));
}