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