Kri*_*shh 10 c# dictionary c#-3.0 c#-4.0
我通过指定值来获取密钥时遇到问题.我能做到这一点的最佳方式是什么?
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;
Run Code Online (Sandbox Code Playgroud)
p.s*_*w.g 19
返回值FirstOrDefault将是a KeyValuePair<string, List<string>>,因此要获取密钥,只需使用该Key属性即可.像这样:
var emailAdd = statesToEmailDictionary
.FirstOrDefault(x => x.Value.Contains(state))
.Key;
Run Code Online (Sandbox Code Playgroud)
或者,这是查询语法中的等价物:
var emailAdd =
(from p in statesToEmailDictionary
where p.Value.Contains(state)
select p.Key)
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61014 次 |
| 最近记录: |