2010-05-03 41 views
6

ich aus dieser Liste Duplikate entfernen möchten entfernen:Wie Duplikate aus einer Liste in C#

List<Dictionary<string, object>> val = new List<Dictionary<string, object>>(); 

Es funktioniert nicht, wenn ich() auf diese Weise Distinct gelten:

List<Dictionary<string, object>> result = val.Distinct().ToList<Dictionary<string, object>>() 

-Update : Problem ist jetzt gelöst. Ich habe den Befehl MySQL union verwendet, um eine Tabelle aus der Datenbank zu lesen.

+1

Haben Sie diese Frage schon gestellt? Ich kann es nicht mehr finden, aber ich bin mir sicher, dass ich es vor nicht allzu langer Zeit gesehen habe ... das Problem mit dieser Frage besteht immer noch bei diesem: Wie definierst du "Duplikat"? Exakt gleiche Instanz, gleiche Schlüssel, gleiche Schlüssel * und * Werte? –

Antwort

4

Try this:

List<Dictionary<string, object>> result = val.Distinct(new myDictionaryComparer()).ToList(); 

wo myDictionaryComparer ein Comparer Class ist. Sie können Ihre Vergleichslogik in dieser Klasse implementieren.

+0

Sie müssen Ihr Wörterbuch nicht unbedingt in MyClass einschließen. Sie können einfach eine Klasse definieren, die IEqualityComparer > implementiert und sie an Distinct übergeben – digEmAll

+0

@digEmAll: Ja! Was Sie sagen, ist in diesem Szenario relevanter. Vielen Dank. Überprüfen Sie meine Bearbeitung. – Amsakanna

0

können Sie die folgende Methode verwenden:

val.Distinct() 
+0

ich wende es an, aber er hat nicht wirklich funktioniert. –

+0

Sind die wiederholten Elemente die gleiche Instanz? – alejandrobog

Verwandte Themen