Ich habe eine Liste, die ich in ein Wörterbuch einfügen möchte. Der Einfachheit halber sind die eingegebenen Werte alle gleich.
Ich kann eine foreach-Schleife verwenden.
%Vor%Das obige funktioniert.
Aber ich möchte ToDictionary tun das gleiche auf folgende Weise -
%Vor%Das scheitert natürlich, weil ich zweimal "Wasser" hinzufüge.
Was ist die korrekte Art der Überprüfung auf doppelte Einträge bei der Verwendung von ToDictionary?
Sie könnten Distinct()
verwenden, um Duplikate herauszufiltern:
Derselbe Ansatz würde Ihre traditionelle Schleife auch viel klarer machen, da Sie nicht "manuell" nach Duplikaten suchen müssen:
%Vor% Distinct
ist eine Option, die das Problem mit doppelten Schlüsseln vermeidet. Wenn Sie eine Anzahl von Duplikaten benötigen, können Sie versuchen, etwas wie diese GroupBy
wie folgt:
Wenn Ihre Anwendung nicht einfach eine einfache String-List / Duplicate-Count-Struktur ist, erhalten Sie möglicherweise eine andere Struktur wie zB Lookup
, die Sie durch Aufruf der ToLookup
-Erweiterung bekommen können - oder möglicherweise gehen mit einer Gruppierung wie die GroupBy
, die ich oben verwendet habe.
Tags und Links c# linq lambda dictionary todictionary