Obecnie używamC# słowniki ValueOrNull/ValueorDefault
var x = dict.ContainsKey(key) ? dict[key] : defaultValue
Chciałbym jakiś sposób, aby mieć słownika [key] zwróci wartość null kluczy nonexistant, więc mogę napisać coś
var x = dict[key] ?? defaultValue;
to również jest częścią zapytań linq itp., Więc wolałbym rozwiązania jednolinijkowe.
Aktualne odpowiedzi są poprawne i zobacz także [moje podobne pytanie] (http://stackoverflow.com/questions/6214975), które jest bardziej dyskusyjne. Jednak powinieneś unikać 'dict.ContainsKey (key)? dict [key] 'jak przeglądasz słownik dwa razy, raz dla' ContainsKey' i znowu dla indexera '[]'. 'TryGetValue' jest brzydka i nie jest wbudowana, ale jest to pojedyncza operacja. – Keith