LINQ:按嵌套列表中的属性进行分组

时间:2014-11-16 15:17:32

标签: c# linq nested grouping

对不起有点模糊的标题!我对这个分组的事情很陌生,所以请不要因为学习而杀了我; - )

我有这两个班级:

public class chartItem
{
    public int prodID { get; set; }
    public int Quantity { get; set; }
    public List<SubItem> SubItems { get; set; }
    ...
}

public class SubItem
{
    public int SubID { get; set; }
    ...
}

我很难解释我想要实现的目标,所以我附上了一张图片说明了这一切:

enter image description here

正如您所见,我试图使用LINQ将此输入转换为此输出。

我有一些接近想要结果的代码,但我无法找到正确的方法(甚至可能)?:

list<chartItem> chartItems = new List<chartItem>();
... input data ...

chartItems = chartItems.GroupBy(x => new 
{ 
    prodID = x.prodID, qntity = x.SubItems.Count }, (key, val) => 
    new chartItem
    {
        prodID = key.prodID,
        Quantity = val.Count(),
        SubItems = val.First().SubItems
    }).ToList();

0 个答案:

没有答案