2014-06-11 4 views
-1

그래서 4 열이있는 데이터 테이블이 있습니다. 한 열은 4,3,6,8,5이고 다음 열은 2,3,4,7,5이고 다른 두 열은 임의의 숫자입니다. 나는 오름차순 순서로 첫 번째 열을 구성하려고하고 있는데, 나머지 열은 예를 들어 따라옵니다. 3,4,5,6,8 번째 열은 3,2,5,4,7이 될 것입니다. 샘플 데이터로DataTable 재정렬

tbl = tbl.AsEnumerable() 
    .OrderBy(row => c[0]) 
    .ThenBy(row => c[1]) 
    .CopyToDataTable(); 

: 도움을 주셔서 감사합니다 ~

+0

어디서 시도 했습니까? 또한, _reorganize_는 행이나 열의 순서를 바꾸시겠습니까? –

+0

정보 부족으로 불편을 끼쳐 드려 죄송합니다. 나는 그것을 분류하는 방법을 확실히 모르기 때문에 아무 것도 시도하지 않았다. 오름차순으로 열 1을 정렬하고 다른 모든 열을 따라야합니다. 감사! – user3730539

+0

VB.NET 버전을 제공하기 위해 내 대답을 편집 한 것으로 알고 있다면 확실하지 않습니다. –

답변

1

당신은 Linq-To-DataTableEnumerable.OrderBy + CopyToDataTable을 사용할 수 있습니다

DataTable tbl = new DataTable(); 
tbl.Columns.Add("Col1", typeof(int)); 
tbl.Columns.Add("Col2", typeof(int)); 
tbl.Columns.Add("Col3", typeof(int)); 
tbl.Rows.Add(4, 2, 1); 
tbl.Rows.Add(3, 3, 2); 
tbl.Rows.Add(6, 4, 3); 
tbl.Rows.Add(8, 7, 4); 
tbl.Rows.Add(5, 5, 5); 

결과 :

3 3 2 
4 2 1 
5 5 5 
6 4 3 
8 7 4 

편집 : 단지 주목했다. VB.NET 태그, more readable in VB.NET with query syntax :

Dim ordered = From row In tbl Order By row(0), row(1) 
tbl = ordered.CopyToDataTable()