vergleichen Sie alle Zeilen in der DataTable - identifizieren doppelte Datensätze

Möchte ich zum normalisieren von Daten in einem DataTable insertRows ohne Schlüssel. Zu tun, dass ich benötigen, zu identifizieren und markieren Sie doppelte Einträge, indem Sie Ihre ID (import_id). Danach wähle ich nur die deutliche lieben. Der Ansatz, den ich denke, ist zu vergleichen, jede Zeile gegen alle Zeilen des DataTable - insertRows

Die Spalten in der DataTable sind nicht zur design-Zeit bekannt, und es gibt keine Schlüssel. Performance-Weise, die Tabelle hätte so viel als 10k bis 20k Platten und etwa 40 Spalten

Wie kann ich dies erreichen, ohne Einbußen bei der Leistung zu viel?

Versuchte ich mit linq, aber ich wusste nicht, wie dynamisch geben Sie die where-Kriterien
Hier, ich bin den Vergleich der ersten und letzten Namen in einer Schleife für jede Zeile

 

foreach (System.Data.DataRow lrows in importDataTable.Rows)
{
    IEnumerable<System.Data.DataRow> insertRows = importDataTable.Rows.Cast<System.Data.DataRow>();

    var col_matches =
    from irows in insertRows
    where
    String.Compare(irows["fname"].ToString(), lrows["fname"].ToString(), true).Equals(0)
    &&
    String.Compare(irows["last_name"].ToString(), lrows["last_name"].ToString(),true).Equals(0)

    select new { import_id = irows["import_id"].ToString() };
}

 

Alle Ideen sind willkommen.
Wie finde ich ähnliche Spaltennamen mithilfe von linq?>meine ähnliche Frage

Bitte Bearbeiten Sie die Frage und den Haken bei "community-wiki"
Ist der Grund für diesen post ist nicht immer Stimmen, weil es die community-wiki?
Ich kann nicht deaktivieren Sie das wiki. Sorry

InformationsquelleAutor |

Schreibe einen Kommentar