我有一本字典,其中的键是字符串,值是字符串列表。
Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>() {
{"alpha", new List<string> {"one", "two", "three"}}
{"beta", new List<string> {"four", "five", "six"}}
{"gamma", new List<string> {"seven", "eight", "nine"}}
}
给定值中存在的字符串时,有没有办法返回键?
例如,给定"four"
,返回"beta"
我发现像这样,但是它的工作原理,只有当价值是单身并且没有一个清单,我不知道我怎么可以用列表做到这一点。
谢谢。
通过值搜索字典效率不高,但是:
string firstKey = dict.Where(kv => kv.Value.Contains("four"))
.Select(kv => kv.Key)
.FirstOrDefault(); // returns null if no list contains "four"
或者如果没有列表包含给定值,则可以提供默认键,那么可以安全使用First
:
string firstKey = dict.Where(kv => kv.Value.Contains("foo"))
.Select(kv => kv.Key)
.DefaultIfEmpty("--no value found--")
.First(); // result: "--no value found--"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句