DataTable을 특정 컴럼을 이용하여 분리 하기

DataTable 이 아래와 같을때 Type 컬럼을 기준으로 같은 Type으로 구성된 DataTable Array을 만들고자 할때 어떻게 하시나요?
[DataTable]
datatable

대부분 foreach에서 filter table 액티비티를 사용하지 않을까요?

다음과 같이 한번 해보세요 아주 간단합니다.

아래 코드는 type 이라는 컬럼을 기준으로 같은 내용을 묶은 DataTable의 Array를 생성합니다.

dt.AsEnumerable.GroupBy(Function(r) r("type"), Function(r) r).
	Select(Function(r) r.ToArray.CopyToDataTable).
	ToArray

[DataTable Array]
datatablearr

이걸 기준이 되는 Type과 분리된 DataTable 형태의 Dictionary로 만들면 훨씬 사용하기 좋겠죠.
아래 코드 형식으로 사용하면 됩니다.

dt.AsEnumerable.GroupBy(Function(r) r("Type"), Function(r) r).
	ToDictionary(Function(g) g.Key, Function(g) g.ToList.CopyToDataTable)

[DataTable Dictionary]
datatabledict

2 Likes