Mam problem z uzyskaniem klucza przez podanie wartości. Jaki jest najlepszy sposób, w jaki mogę to osiągnąć?Uzyskaj klucz z wartości - Słownik <ciąg, lista <string>>
var st1= new List<string> { "NY", "CT", "ME" };
var st2= new List<string> { "KY", "TN", "SC" };
var st3= new List<string> { "TX", "OK", "MO" };
var statesToEmailDictionary = new Dictionary<string, List<string>>();
statesToEmailDictionary.Add("[email protected]", st1);
statesToEmailDictionary.Add("[email protected]", st2);
statesToEmailDictionary.Add("[email protected]", st3);
var emailAdd = statesToEmailDictionary.FirstOrDefault(x => x.Value.Where(y => y.Contains(state))).Key;
nie jest 'FirstOrDefault (...). Key' niebezpieczne, jak nieoczekiwane zachowanie w przypadku wystąpienia„OrDefault”tutaj ? –
@ChrisMarisic Przypadku "OrDefault" zwraca wartość domyślną typu, który jest iteracyjne. W przypadku typów odniesienia jest to 'null', ale w przypadku typów wartości będzie to nowe wystąpienie tego typu. Ponieważ 'KeyValuePair' jest typem wartości (tj. 'Struct'), przypadek" OrDefault "nie spowoduje wyjątku dotyczącego odwołania zerowego. Ponieważ 'TKey' tutaj to' string', '.Key' tej nowej instancji będzie' null'. –