Bir değer belirterek anahtarı almada sorun yaşıyorum. Bunu başarabilmemin en iyi yolu nedir?Değeri anahtarı alın - Sözlük <dize, Liste <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;
beklenmeyen bir davranış olduğu gibi 'FirstOrDefault (...). Key' tehlikeli değil mi dönecektir varsa ? –
@ChrisMarisic 'OrDefault' durumu, üzerinde yinelediğiniz türün varsayılan değerini döndürür. Referans türleri için, bu 'null' değil, değer türleri için, bu türün yeni bir örneği olacaktır. 'KeyValuePair 'bir değer türü olduğundan (yani' struct '),' OrDefault 'durumu boş referans istisnasıyla sonuçlanmayacaktır. Buradaki "TKey", "string" olduğundan, bu yeni durumun ".Key" i "null" olacaktır. –