Feedback

C# - doppelte Zeilen aus DataTable löschen

Veröffentlicht von am 16.04.2007
(2 Bewertungen)
Diese Methode löscht doppelte Zeilen aus einer DataTable.
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Komplett

Ziel des Seminars ist der flexible Umgang mit VB.NET, wie z.B. die damit verbundene eigenständige Entwicklung von Programmen oder das Verwenden von Datenbanken.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

/// <summary>
/// Removes duplicate rows in a DataTable.
/// </summary>
/// <param name="dataTable">The DataTable.</param> 
/// <param name="columnName">Name of the column</param>
private static void RemoveDuplicateRows(DataTable dataTable, string columnName) 
{
    Hashtable hashTable = new Hashtable();
    List<DataRow> duplicateList = new List<DataRow>();
    foreach (DataRow dataRow in dataTable.Rows)
        try
        {
            hashTable.Add(dataRow[columnName], string.Empty);
        }
        catch
        {
            duplicateList.Add(dataRow);
        }
    foreach (DataRow dataRow in duplicateList)
        dataTable.Rows.Remove(dataRow);
}

Abgelegt unter DataTable, doppelt, DataRow.

2 Kommentare zum Snippet

dbl schrieb am 08.05.2007:
Bekantlicherweise sind Exceptions recht teuer, was Performance angeht, wäre eine Abfrage, ob bereits vorhanden nicht effektiver?

herbivore schrieb am 11.05.2007:
Es ist ein weit verbreitetes Gerücht, dass Exceptions teuer sind. Relativ teuer sind sie allenfalls im Debug-Modus. Für den Releasemodus gilt das nicht. Was letztendlich schneller ist, hängt davon ab, wieviele Einträge doppelt sind, denn die Abfrage mit Contains kostet bei jedem Schleifendurchlauf zusätzlich, die Exception nur, wenn ein Eintrag doppelt ist.
 

Logge dich ein, um hier zu kommentieren!