은 내가이 문제를 해결하는 가장 적절한 방법을 찾은 것 같아요, 그래서 사람이 여기에 관심이 경우는 다음과 같습니다
DataView를의 찾기 방법은 빠른 현재 정렬 순서를 사용하여 행을 찾습니다. 그 문제는 정렬 키가 일반적으로 고유 한 정렬 키가있는 모든 행 을 식별하지 않는다는 것입니다. 그래서 이것이 작동하려면 정렬 키를 모든 행마다 고유하게 적용해야합니다. 정렬 표현식의 끝 부분에 기본 키를 추가하여 간단하게 을 수행 할 수 있습니다. 그런 식으로 고유하지 않은 모든 정렬 키는 추가적으로 이 기본 키로 정렬되고 정렬 키는 고유로 이되며 정렬 순서가 동시에 유지됩니다. 다음 예는 다음과 같습니다
이의 우리가 DataTable을로드 한 가정 해 봅시다 :
id last_name first_name date_of_birth
----------------------------------------
11 Rogers Samuel 1968-08-17
12 Smith John 1952-12-25
13 Johnson Bob 1981-03-29
14 Smith John 1977-02-08
15 Adams David 1971-09-15
----------------------------------------
// set primary key for DataTable
table.PrimaryKey = new DataColumn[] { table.Columns[ "id" ] };
// create first sorting order by last and first name
// but make sort unique by adding primary key at end
DataView view1 = new DataView(table);
view1.Sort = "last_name, first_name, id";
// create second sorting order by date of birth and again
// make sort unique by adding primary key at end
DataView view2 = new DataView(table);
view2.Sort = "date_of_birth, id";
// get DataRow of DataTable with primary key 14
DataRow row = table.Rows.Find(14);
// using data from DataRow find matching sort key
// be aware that Find method of DataView could return -1
// if DataView has filter set that hides row you search
int index_in_view1 = view1.Find(new Object[] { row[ "last_name" ],
row[ "first_name" ],
row[ "id" ] });
int index_in_view2 = view2.Find(new Object[] { row[ "date_of_birth" ],
row[ "id" ] });
사람이 정말 듣고 관심 것이 솔루션에 이의가있는 경우.