【问题标题】:Selecting a Dictionary of Dictionaries with Linq用 Linq 选择字典
【发布时间】:2017-09-09 06:03:35
【问题描述】:

我有以下结构:

Dictionary<string,Dictionary<int,MyObject>> GetItForMe;

这通过 foreach 非常简单,但我想通过 linq 在一个查询中完成。

所以,当 MyObject 符合我的过滤器时,我想通过 linq 检索。比如:

MyObject.Number == 1 && MyObject.ThisString == "MyString"

我希望匹配的记录返回上述数据结构 - 所以查询返回一个字典字典,如上所述。我不希望它只返回匹配的 MyOjbect。

【问题讨论】:

    标签: c# .net linq dictionary


    【解决方案1】:

    你可以试试这样的:

    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 过滤,以便筛选出我们不希望包含在第二个字典中的对象。

    【讨论】:

      【解决方案2】:

      这里是fiddle

      您可能正在寻找类似的东西

      GetItForMe.Where(k => k.Value.Any(ik => ik.Value.MyNum == 1 && ik.Value.MyString == "bar")).ToDictionary(d => d.Key, d => d.Value);
      

      【讨论】:

        猜你喜欢
        • 2013-11-12
        • 1970-01-01
        • 2014-05-10
        • 1970-01-01
        • 2015-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多