Хорошо, я посмотрел на блог, указанный мне Пандией.В разделе комментариев парень по имени Кевин Моррис опубликовал решение, используя словарь C #, который работал для меня.
В своем основном блоке я написал:
string keyColumn = "Website";
RemoveDuplicates(table1, keyColumn);
И мои RemoveDuplicatesФункция была определена как:
private void RemoveDuplicates(DataTable table1, string keyColumn)
{
Dictionary<string, string> uniquenessDict = new Dictionary<string, string>(table1.Rows.Count);
StringBuilder sb = null;
int rowIndex = 0;
DataRow row;
DataRowCollection rows = table1.Rows;
while (rowIndex < rows.Count - 1)
{
row = rows[rowIndex];
sb = new StringBuilder();
sb.Append(((string)row[keyColumn]));
if (uniquenessDict.ContainsKey(sb.ToString()))
{
rows.Remove(row);
if (RemoveAllDupes)
{
row = rows[rowIndex - 1];
rows.Remove(row);
}
}
else
{
uniquenessDict.Add(sb.ToString(), string.Empty);
rowIndex++;
}
}
}
Если вы зайдете в блог , вы найдете более общую функцию, которая позволяет прослушивать дупы по нескольким столбцам.Я добавил флаг - RemoveAllDupes - на случай, если я хочу удалить все дублирующиеся строки, но это все еще предполагает, что строки упорядочены по имени, и включает только дубликаты, а не тройные, четырехкратные и так далее.Если кто-то может, обновите этот код, чтобы отразить его удаление.