Search code examples
c#.netdatatableduplicates

How can I remove duplicate entries from a data table


How can I remove duplicate entries from a DataTable?


Solution

  • Remove duplicates by creating a new method like this:

    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;
    }
    

    And then pass your DataTable and the column name you want to check against to it.

    Further reading:

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

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

    For remove duplicates in a column

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