Ich hatte gerade ein kleines Problem. Ich habeDictionary mit Enum Werttyp - Aufruf des Indexers für einen Schlüssel nicht im Wörterbuch?
IDictionary<Something,MyEnum> map;
Ich dachte, ein Verfahren zu schreiben:
MyEnum GetMapping(Something x);
Verwendet ein bisschen wie:
MyEnum e = GetMapping(x)
if(e!=null){...}
Aber natürlich ist das Problem seit MyEnum
ist ein Standard Enum
based auf int
, GetMapping
kann nicht zurück NULL. Das Hinzufügen einer separaten DoesMappingExist
Methode scheint unordentlich, gibt es eine nette Möglichkeit, dies zu beheben?
Und was würde map[AnObjectNotInTheMap]
eigentlich zurückgeben - einfach Default(MyEnum)
, d. H. 0
?
Sie können NULL-Werte verwenden: 'MyEnum? GetMapping (...) ' –
Ich bin nicht sehr vertraut mit diesem bisschen C# Funktionalität, es sieht ideal aus –
Sie können den ersten Wert namens' 'null'' oder' 'keine Auswahl'' hinzufügen, Standard wäre der erste Wert von enum –