asp.net如何将对象分组到列表中

时间:2019-01-18 16:07:24

标签: c# linq

a有一个显示以下值的列表

{day:1 , product:1 , value :1} , 
{day:1 , product:2 , value :2}
{day:1 , product:3 , value :3}
.
.
.

我想要一个列表

{day:1 , details:{ {product:1 , value :1} , {product:2 , value :2},{ 
                    product:3 , value :3}
                  }
 },
{day:2 , details:{ {product:1 , value :10} , {product:2 , value :20},{ 
                    product:3 , value :30}
                  }
 },

有人可以帮我做吗? 谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用linq以匿名类型进行操作

var listNew = listBase.Select(x => new
            {
                day= x.day,
                details= new
                {
                    product= x.product,
                    value = x.value
                }
            }).ToList();

答案 1 :(得分:0)

您可以使用GroupBy和Anonymous类型来实现此目的。

var result = list.GroupBy(x=>x.day)
                 .Select(x=> new 
                 {
                    day=x.Key,
                    detail = x.ToList().Select(c=> 
                                      new 
                                      {
                                            product=c.product, 
                                            value=c.value
                                      })
                  });