我无法通过指定值来获取密钥。我实现这一目标的最佳方法是什么?
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] /cdn-cgi/l/email-protection", st1);
statesToEmailDictionary.Add("[email protected] /cdn-cgi/l/email-protection", st2);
statesToEmailDictionary.Add("[email protected] /cdn-cgi/l/email-protection", st3);
var emailAdd = statesToEmailDictionary.FirstOrDefault(x => x.Value.Where(y => y.Contains(state))).Key;
返回值来自FirstOrDefault http://msdn.microsoft.com/en-us/library/bb340482.aspx将是一个KeyValuePair<string, List<string>>
,因此要获取密钥,只需使用Key
财产。像这样:
var emailAdd = statesToEmailDictionary
.FirstOrDefault(x => x.Value.Contains(state))
.Key;
或者,下面是等效的查询语法:
var emailAdd =
(from p in statesToEmailDictionary
where p.Value.Contains(state)
select p.Key)
.FirstOrDefault();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)