繁体   English   中英

LINQ group by 进入新列表

[英]LINQ group by into a new list

我有两节课

public class groupedDoc { 
   public string gr_id = "";
   public string id = "";
   public string name = "";
   public subrec subRec = new subrec();
}

public class subrec {
   public List<record> record = new List<record>();
   '''
}

我想根据 ID 和名称将List<record> allrecord到名为groupedDoc的 object 中。

这就是我所做的

var groupedList = allrecord.ToList().GroupBy(x => new { x.id ,x.name})
.Select(grp => new groupedRec
{
     gr_id = Guid.NewGuid().ToString(),
     id = grp.FirstOrDefault().id,
     name = grp.FirstOrDefault().name
})
.ToList();

但我也想将分组记录返回到subrec.record中。 我尝试subRec.record = grp.ToList()但得到“无效的初始化程序成员声明器”。 所以任何人都可以帮助我实现这一目标?

您还必须在语句中初始化 subrec:

var groupedList = allrecord.ToList().GroupBy(x => new { x.id ,x.name})
.Select(grp => new groupedRec
{
     gr_id = Guid.NewGuid().ToString(),
     id = grp.Key.id,
     name = grp.Key.name,
     subRec = new subrec()
     {
         record = grp.ToList()
     }
})
.ToList();

我已将您的id =name =分配替换为我相信您想要的,以节省为分组记录创建更多枚举器。 顺便说一句,您应该将record重命名为records ,因为它代表多个记录。

我还建议遵循Microsoft 的命名约定,以便您的代码更容易被其他人遵循等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM