0

我知道这可以通过一些硬编码的 Linq 连接手动完成。但是,由于我拥有大量的 .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 ????

我怎样才能将这个列表组合成一个,可能与 Lambda 语句?

提前致谢 !

4

1 回答 1

3

这对你有用吗?您应该能够完全避免使用 DataTables 列表。

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

如果您更改 GetCSVRows 以返回一个IDataReader,您可以使用Load,这可能会更快。

foreach (var v in dir) 
{ 
    dtCombined.Load(GetCSVRows(v, true)); 
}
于 2012-06-28T16:34:19.007 回答