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]

C# 2017/2015/2013 Aufbau

In dieser Schulung lernen Sie fortgeschrittene Techniken im Bereich .Net C#. Dabei stehen neben den eigentlichen Techniken auch architektonische Aspekte im Mittelpunkt.

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

/// <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!