Guten Tag.Doppelte Spaltenzellenwerte von einer DataTable löschen
Der nächste Beitrag, den ich sah, war .
Ich habe eine Datentabelle mit den folgenden Informationen:
ID COL1 COL2 COL3
10 ABC Town Dog
20 AAA Town Dog
30 BBB Town Cat
40 CCC City Cat
50 DDD City Pig
Ich mag die Spalten mit ähnlichem Wert löschen, so dass nur die erste Instanz jedem bleibt. Die Spalte Filter Benutzereingabe, dass es produzieren kann:
ID COL1 COL2 COL3 ID COL1 COL2 COL3
10 ABC Town Dog 10 ABC Town Dog
20 AAA Dog 20 AAA Town
30 BBB Cat OR 30 BBB Town Cat
40 CCC City Cat 40 CCC City
50 DDD Pig 50 DDD City Pig
Bisher habe ich einen funktionierenden Code, aber es führt langsam.
foreach (string strListVal in lstUniqueString) //contains the unique values
{
foreach (DataRow drTableTraverse in dt.Rows) //match the string vs. all rows
{
if (drTableTraverse[strColumnName].ToString() == strListVal && bClearedFirst == false)
{
bClearedFirst = true; //flag for the first instance
continue; //skip the first instance, then clear the remaining
}
else if (drTableTraverse[strColName].ToString() == strListVal)
{
drTableTraverse[strColumnName] = "";
}
}
}
Gibt es einen schnelleren Weg, um das gleiche Ergebnis zu erzielen? Ohne linq, wenn überhaupt.
Wenn doppelte auftreten dann Sie als leerer Wert (leere Zeichenkette) gesetzt werden soll? –
Ja, das ist richtig. Die Duplikate sind leere Zeichenfolgen, und die erste Instanz behält ihren Wert – valmanway