Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq c#多重分组方式_C#_Linq - Fatal编程技术网

Linq c#多重分组方式

Linq c#多重分组方式,c#,linq,C#,Linq,我正在尝试编写一个linq查询,它将给出这种类型的结果 所以我试着按订单类型分组,可以是盈余,也可以是赤字。之后,我按地区分组,然后我想看看每种类型的赤字有多少。到目前为止,我已经做到了这一点 var results = Order.GetActive().GroupBy(x => x.OrderType). Select(i => new { OrderType = i.Key, Orders = i.ToList().GroupBy(j => j.GetL

我正在尝试编写一个linq查询,它将给出这种类型的结果

所以我试着按订单类型分组,可以是盈余,也可以是赤字。之后,我按地区分组,然后我想看看每种类型的赤字有多少。到目前为止,我已经做到了这一点

var results = Order.GetActive().GroupBy(x => x.OrderType).
        Select(i => new { OrderType = i.Key, Orders = i.ToList().GroupBy(j => j.GetLocation().Region) });
现在我被困在尝试按masstype分组,然后计算总数。例如,如果masstype1有10个剩余订单,我想显示一个累计金额的条目

像这样的

{
'Region'{

    'Oslo'{

        'Masstype' {

            'Rock' {

                'Defict', 100
                'Surplus', 0
            },
            'Mud' {

                'Defict', 100
                'Surplus', 100
            }
        }
    }
}
}

从这个问题中,很难知道您希望输出采用什么格式,但是,您可以使用以下匿名类型按多个属性分组:

var groupedEntries = Order.GetActive().GroupBy(x => new {x.OrderType, x.GetLocation().Region, x.MassType})
编辑:更新之后,您似乎需要这样的结构:
Dictionary
,您可以使用以下LINQ语句实现该结构,但是,此时,我建议创建一个新结构来保存此数据:

var result = Order.GetActive()
    .GroupBy(a => a.OrderType)
    .ToDictionary(a => a.Key, a => a
        .GroupBy(b => b.GetLocation().Region)
        .ToDictionary(b => b.Key, b => b.
            GroupBy(c => c.MassType)
            .ToDictionary(c => c.Key, c => c.Sum(d => d.Value))
        )
    );

我想得到的是一个包含区域的列表,每个区域都有一个包含总量的体量类型列表。所有这些都分为赤字和盈余,这是订单类型。希望这能解释。恐怕我还不清楚该对象的类型,也许你可以更新问题,说明你将如何使用它?我添加了一个数据结构,说明我认为最终对象的外观。如果这没有帮助,也许我们可以将其带到私人聊天室。:)谢谢你,伙计,我会试试看它是否管用,;)