2012-06-28 3 views
0

나는 이것이 하드 코딩 된 Linq 조인을 사용하여 수동으로 수행 할 수 있음을 알고 있습니다. 그러나 과 같이 매우 많은 수의 .csv 파일로 인해 일괄 적으로 처리 할 수있는 우아한 방법을 제시합니다.Combin 같은 DataTables의 목록

코드 :

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 ???? 

가 어떻게 아마도 람다 문, 하나에이 목록을 결합 할 수 있습니다?

미리 감사드립니다.

답변

3

이 기능을 사용할 수 있습니까? DataTable 목록을 사용하지 않아야합니다. 당신이 IDataReader을 반환 GetCSVRows을 변경하는 경우

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

, 당신은 빠를 수 있습니다 Load를 사용할 수 있습니다.

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

좋은 csv 리더에 대한 제안 사항이 있으십니까? 내가 사용하고있는 것은 날짜에 유형 오류를 던지고 있습니까? –

+1

@bumble_bee_tuna : 나는 그것에 대해 질문이 있다는 것을 알고 있습니다. –

+1

@bumble_bee_tuna : http://stackoverflow.com/a/906857/4068 –

관련 문제