簡體   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