下面的代码使用 C# 移除 DataTable 中重复的行。像你想象 的那样在事件中调用这个函数。
private void btnRemov_Click(object sender, EventArgs e) {
List<string> keyColumns = new List<string>();
keyColumns.Add("ColumnName1");
keyColumns.Add("ColumnName2");
keyColumns.Add("ColumnName3");
RemoveDuplicatesFromDataTable(ref dtAlarmData, keyColumns);
}
//Method to remove Duplicate value from DataTable
public void RemoveDuplicatesFromDataTable(ref DataTable table,
List<string> keyColumns) {
Dictionary<string, string> uniquenessDict
= new Dictionary<string, string>(table.Rows.Count);
StringBuilder stringBuilder = null;
int rowIndex = 0;
DataRow row;
DataRowCollection rows = table.Rows;
while (rowIndex < rows.Count - 1) {
row = rows[rowIndex];
stringBuilder = new StringBuilder();
foreach (string colname in keyColumns) {
stringBuilder.Append(((string)row[colname]));
}
if (uniquenessDict.ContainsKey(stringBuilder.ToString())) {
rows.Remove(row);
} else {
uniquenessDict.Add(stringBuilder.ToString(), string.Empty);
rowIndex++;
}
}
}
dtAlarmData 为 DataTable 。