는 I는 2 열 DataTable
(ID, 이름) 생성 :DataTable의 정렬은
DataTable table = new DataTable();
DataColumn id = table.Columns.Add("id", typeof(int));
id.AutoIncrement = true;
id.AutoIncrementSeed = 1;
id.AutoIncrementStep = 1;
id.ReadOnly = true;
table.Columns.Add("name", typeof(String));
DataColumn
라는 id
AutoIncrementing
이다 (예를 들어, 아이덴티티).
그럼 파일을 읽고 파일의 각 줄을 행으로 추가합니다.
DataView dv = table.DefaultView;
dv.Sort = "name";
table = dv.ToTable();
문제가의 id
열이 나는 그것을하지 선호하는 경우 소트한다 (기본적으로 난 그냥 정렬하려면 :
//for each line in file
table.Rows.Add(null,line);
다음, 나는이 DataView
사용하여 DataColumn
이름 name
에 DataTable
를 정렬 다른 열과 독립적으로 name
열).
내가 찾을 수있는 유일한 해결책은 파일 행을 List<string>
으로 채우고 중간 단계를 거쳐 정렬 한 다음 테이블을 채 웁니다. 좀 더 우아한 (단순한) 솔루션이 있다면 궁금하십니까? 그냥 이름을 원하는 경우,
var orderedRows = table.AsEnumerable()
.OrderBy(r => r.Field<String>("name"));
또는 :
이름 만 또는 DataRow가 필요합니까? 후자의 경우 이름은 ID에 속합니다. –
각'name'은'id'에 속합니다. 그러나, 나는 id, name 키, value pair _after_ name에 대해서만 신경 써야한다. 예 : 영숫자로 정렬 된 첫 번째 이름은 1이어야하고 다음 문자는 2이어야합니다. 또한 이것을 테이블 값 매개 변수로 SQL Server에 삽입 할 계획입니다. – user17753