我有一个Dictionary<string, string>
和另一个List<string>
。我想要实现的是一个 linq 查询,用于从字典中获取所有项目,其中所述字典中的任何值都在List<string>
.
我发现这篇文章很有帮助,LINQ 根据列表查询字典 https://stackoverflow.com/questions/12114227/linq-querying-a-dictionary-against-a-list。并且能够编写以下 linq 表达式,但是我的结果实际上从未返回任何内容。
到目前为止我所拥有的。
Data
是字典并且PersonList
是字符串列表。
var Persons = PersonList.Where(x => Data.ContainsKey(x))
.Select(z => new { key = z, value = Data[z] })
.ToList();
您在寻找吗keys or values?如果您正在寻找values use
var Persons = Data.Where(kvp => PersonList.Contains(kvp.Value))
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
如果你真的想要keys那么你的代码应该可以工作,但另一种选择是:
var Persons = Data.Where(kvp => PersonList.Contains(kvp.Key))
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)