Gibt es etwas von Natur aus, wenn er < /p>
ersetztIDictionary
< /code>
mit < /p>
ILookup
< /code>
Ich bevorzuge Ilookup gegenüber Idictionary aufgrund ihrer "ehrlicheren" Schnittstelle und Unveränderlichkeit. < /p>
Ich habe jedoch festgestellt Sammlungen, also existieren Tasten mit leeren Sammlungen einfach nicht darin. Dies ist ein Problem, denn ich möchte auch, dass Ilookup die Informationen über alle möglichen Schlüssel vermittelt (obwohl einige von ihnen möglicherweise leer sind), damit ich so gehen kann: < /p>
var statistics = from grouping in myLookup
select new {grouping.Key, grouping.Count()};
< /code>
, was mit dem Wörterbuch von aufzähligen Funktionen funktioniert, aber leider nicht mit iloookup funktioniert. Es ist einfach unmöglich, Einträge zu haben, bei denen grupping.count () == 0, wie bei IDictionary. Ein anderer wichtiger Unterschied zwischen einer Suche und einem Wörterbuch: Wenn Sie nach einer Suche nach der Sequenz bitten, die einem Schlüssel entspricht, von dem es nicht weiß, wird eine leere Sequenz zurückgegeben, anstatt eine Ausnahme zu werfen. ( Ein Schlüssel, von dem die Lookup weiß leere Gruppierungen erlaubt? Um das Beste aus beiden Welten zu haben, bin ich kurz davor, die Filter () -Erweiterungsmethode für Ilookup hinzuzufügen, die genau dies tut, aber ein Problem lösen muss, das Linq nicht erlaubt, leere Igroupings zu erstellen (daher muss ich meine eigenen implementieren Klasse), aber ich habe das Gefühl, dass ich vielleicht etwas gegen Designprinzipien von Linq.
Beispiel
Ilookup mit leeren Sammlungen ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post