我想通过指定一个值来获取密钥,但是遇到了麻烦。你能告诉我最好的实现方法吗?
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("test1@gmail.com", st1);
statesToEmailDictionary.Add("test2@gmail.com", st2);
statesToEmailDictionary.Add("test3@gmail.com", st3);
var emailAdd = statesToEmailDictionary.FirstOrDefault(x => x.Value.Where(y => y.Contains(state))).Key;
FirstOrDefault(...).Key
不是很危险吗?如果在这里发生 "OrDefault",会导致意外行为。 - Chris Marisicnull
,但对于值类型,它将是该类型的新实例。由于KeyValuePair<TKey, TValue>
是一个值类型(即一个struct
),因此 'OrDefault' 情况不会导致空引用异常。由于这里的TKey
是string
,所以该新实例的.Key
将为null
。 - p.s.w.g