c # ToDictionary mit ContainsKey-Prüfung

7

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?

    
Bryan 29.03.2012, 18:46
quelle

2 Antworten

14

Sie könnten Distinct() verwenden, um Duplikate herauszufiltern:

%Vor%

Derselbe Ansatz würde Ihre traditionelle Schleife auch viel klarer machen, da Sie nicht "manuell" nach Duplikaten suchen müssen:

%Vor%     
BrokenGlass 29.03.2012, 18:47
quelle
7

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:

%Vor%

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.

    
devgeezer 30.03.2012 15:50
quelle
yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warningyii\base\ErrorException

PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/lib64/php/modules/mongodb.so (/usr/lib64/php/modules/mongodb.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/mongodb.so.so (/usr/lib64/php/modules/mongodb.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '417499',
    'url' => 'c-sharp-todictionary-with-containskey-check',
];

$_SESSION = [
    '__flash' => [],
];