[英]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.