2013-08-02 3 views
0

의 목록 내가 가진 내가 OptionID 1을 선택하고 중복 제거하기 위해 목록에 추가 기준에 따라 나에게 그런 ID, Description, OptionID정렬 된 DataRow

ID Description OptionID 
1 TEST  1 
2 TEST2  1 
2 TEST3  1 
3 TEST4  2 

을 얻는 DataTable : 여기

DataRow[] datarow = dt.Select("OptionID = 1"); 
AddToList(lst, datarow); 

을 어떻게 중복을 제거하고 DataRow의 목록을 반환합니까 :

private static List<DataRow> RemoveDuplicate(List<DataRow> drAllOptions) 
    { 
     List<DataRow> ldr = new List<DataRow>(); 
     List<int> safeGuard = new List<int>(); 
     foreach (DataRow dr in drAllOptions) 
     { 
      if (!safeGuard.Contains(Convert.ToInt32(dr["ID"]))) 
      { 
       ldr.Add(dr); 
       safeGuard.Add(Convert.ToInt32(dr["ID"])); 
      } 
     } 

     return ldr; 
    } 

그리고 나서 엉덩이 반환 된 DataRow 목록을 Repeater으로 알려주십시오. 이제이 목록을 정렬하고 싶습니다. lst.sort()을 사용해 보았습니다.하지만 예외는 Failed to compare two elements in the array.입니다. 도움을 받으실 수 있으면 감사하겠습니다.

추신. .NET 2.0을 사용하고 있습니까

답변

1

정렬 방법을 정렬해야합니다. 당신은 여기

public DataTable RemoveDuplicateRows(DataTable dTable, string colName) 
{ 
    Hashtable hTable = new Hashtable(); 
    ArrayList duplicateList = new ArrayList(); 

    //Add list of all the unique item value to hashtable, which stores combination of key, value pair. 
    //And add duplicate item value in arraylist. 
    foreach (DataRow drow in dTable.Rows) 
    { 
     if (hTable.Contains(drow[colName])) 
     duplicateList.Add(drow); 
     else 
     hTable.Add(drow[colName], string.Empty); 
    } 

    //Removing a list of duplicate items from datatable. 
    foreach (DataRow dRow in duplicateList) 
     dTable.Rows.Remove(dRow); 

    //Datatable which contains unique records will be return as output. 
     return dTable; 
} 

http://www.dotnetspider.com/resources/4535-Remove-duplicate-records-from-table.aspx 

http://www.dotnetspark.com/kb/94-remove-duplicate-rows-value-from-datatable.aspx 

아래 링크 중복 제거를 위해 열에서 중복을 제거하려면이

private static int MyComp(DataRow left, DataRow right) 
{ 
    if (left["ID"] == right["ID"]) 
    { 
     return 0; 
    } 
    else 
    { 
     return 1; 
    } 
} 

lst.Sort(MyComp) 
-1

의 어떤 종류를해야 할이 example

에서보세요

http://dotnetguts.blogspot.com/2007/02/removing-duplicate-records-from.html