我無法通過指定值獲取密鑰。我能達到這個目標的最好方法是什麼?從值獲取密鑰 - 詞典<字符串,列表<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;
是不是'FirstOrDefault(...)。Key'危險的,因爲意外的行爲,當「OrDefault」這裏發生? –
@ChrisMarisic'OrDefault'大小寫返回您正在迭代的類型的默認值。對於引用類型,這是'null',但對於值類型,它將是該類型的新實例。由於'KeyValuePair'是一個值類型(即'struct'),因此'OrDefault'情況不會導致空引用異常。由於'TKey'在這裏是'string',所以新實例的'.Key'將會是'null'。 –