我有一个Dictionary<string, string>和另一个List<string>.我想要实现的是一个linq查询,以获取字典中的所有项目,其中来自所述字典的任何值都在List<string>.
我发现这篇文章很有帮助,LINQ查询列表中的字典.并且能够编写以下linq表达式,但是我的结果实际上从未返回任何内容.
到目前为止我有什么.
Data是字典,PersonList是字符串列表.
var Persons = PersonList.Where(x => Data.ContainsKey(x))
.Select(z => new { key = z, value = Data[z] })
.ToList();
Run Code Online (Sandbox Code Playgroud)
D S*_*ley 30
你在寻找钥匙或价值观吗?如果你正在寻找价值使用
var Persons = Data.Where(kvp => PersonList.Contains(kvp.Value))
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
Run Code Online (Sandbox Code Playgroud)
如果您真的想要密钥,那么您的代码应该可以工作,但另一种选择是:
var Persons = Data.Where(kvp => PersonList.Contains(kvp.Key))
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
Run Code Online (Sandbox Code Playgroud)
试试这个:
var Persons = Data.Where(x=>PersonList.Contains(x.Value))
.Select(x=>new { key=x.Key, value=x.Value})
.ToList();
Run Code Online (Sandbox Code Playgroud)
我将结果转换为列表,因为我注意到你在代码中使用了它.如果你想要它的字典,只需看看D Stanley提供的答案.
| 归档时间: |
|
| 查看次数: |
58314 次 |
| 最近记录: |