DataTable Distinct

DataTable에서 중복된 Row을 제거 할때 어떻게 하시나요?

GroupBy를 이용해서 나온 결과물에 First 나 Last 를 이용하여 처리 하는 방식을 주로 사용하는데

그냥 Distinct 함수를 사용해보세요.

DT.AsEnumerable.Distinct(System.Data.DataRowComparer.Default).CopyToDataTable

이렇게 하면 중복된 Row를 제외한 결과물을 얻을 수 있습니다.
여기 핵심은 Comparer을 System.Data.DataRowComparer.Default 사용한다는 것입니다.

이외에 두개의 DataTable 교집합, 합집합이나 차집합을 구할때도 System.Data.DataRowComparer.Default를 이용합니다.

DT1.AsEnumerable.Intersect(DT2.AsEnumerable, System.Data.DataRowComparer.Default).CopyToDataTable

교집합 : Intersect, 합집합 : Union, 차집합 : Except

참고

1 Like