2013-07-08 4 views
1

2 개의 데이터 테이블, Tab1 및 Tab2가 있습니다. Tab1에 데이터가 가득 차고 Tab2가 비어 있습니다.C# 다른 데이터 테이블에서 다른 데이터 테이블로 복사

Tab1은 다음과 같습니다.
Col1 | Col2 | Col3 | 키 | 국가 | Col ....
abc | xyz | 103 | AK1 | POL | .....
pol | 남자 | 1212 | AK2 | POL | ....
moro | kom | 11 | AK1 | POL | ....
bca | 오니 | 10a | AK1 | GER | ....
bca | 오니 | 10a | AK3 | GER | ....
al | 1n | zxc | AK2 | POL | ....

Key and Country (Key + Country 조합은 고유해야 함)별로 다른 데이터를 선택하고 Tab2에 입력해야합니다.

어떻게해야합니까? 많은 행이 있으므로 조용한 빠른 방법이 필요합니다.

결과는 다음과 같아야합니다.
Col1 | Col2 | Col3 | 키 | 국가 | Col ....
abc | xyz | 103 | AK1 | POL | .....
pol | 남자 | 1212 | AK2 | POL | ....
bca | 오니 | 10a | AK1 | GER | ....
bca | 오니 | 10a | AK3 | GER | ....

답변

2

주어진 열에 항목을 그룹화 한 다음 각 그룹에서 첫 번째 (또는 마지막 또는 어느 행) 행을 가져올 수 있습니다.

secondTable = firstTable.AsEnumerable() 
    .GroupBy(row => new 
    { 
     Key = row.Field<string>("Key"), 
     Country = row.Field<string>("Country"), 
    }) 
    .Select(group => group.First()) 
    .CopyToDataTable(); 
+0

firstTable.AsEnumerable() .GroupBy (행 => 새로운 { 키 = row.Field ("키"), 나라 = row.Field ("나라"), }) .Select (group => group.First()) .CopyToDataTable (secondTable, LoadOption.OverwriteChanges); 저 버전이 저에게 효과적이었습니다. – user1736332

+0

지금은 그 cooool,이 람다 무엇입니까 ?? – Ali

관련 문제