首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Linq选择词典词典

用Linq选择词典词典
EN

Stack Overflow用户
提问于 2017-09-09 06:03:35
回答 2查看 755关注 0票数 0

我的结构如下:

代码语言:javascript
复制
Dictionary<string,Dictionary<int,MyObject>> GetItForMe;

这将是非常简单的通过一个外汇,但我想要通过一个查询通过linq。

因此,当MyObject满足我的过滤器时,我想通过linq检索。例如:

代码语言:javascript
复制
MyObject.Number == 1 && MyObject.ThisString == "MyString"

我希望匹配的记录返回上述数据结构--因此查询返回上述字典字典。我不希望它只返回匹配的MyOjbect。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-09 06:08:32

你可以试试这样的方法:

代码语言:javascript
复制
var result = GetItForMe.Where(x=>x.Value
                                  .Where(y => y.Value.Number == 1 
                                           && y.Value.ThisString == "MyString"))
                       .ToDictionary(x => x.Key, x => x.Value);

本质上,我们应用了一个Where过滤,以便整理出我们不希望包含在第二个字典中的对象。

票数 0
EN

Stack Overflow用户

发布于 2017-09-09 06:19:50

这是小提琴

可能你在找这样的东西

代码语言:javascript
复制
GetItForMe.Where(k => k.Value.Any(ik => ik.Value.MyNum == 1 && ik.Value.MyString == "bar")).ToDictionary(d => d.Key, d => d.Value);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46127652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档