[英]Populate list of object using group by in LINQ
我有以下課程
public class R
{
public Guid Id { get; set; }
public string Title { get; set; }
public int RNumber { get; set; }
public int VNumber { get; set; }
}
public class RD
{
public Guid RDId { get; set; }
}
public class RRDS
{
public R R { get; set; }
public string ProjectTitle { get; set; }
public List<RD> RDs{ get; set; }
}
public class RRSDto
{
public Guid Id { get; set; }
public string Title { get; set; }
public string ProjectTitle { get; set; }
public int RNumber { get; set; }
public int VNumber { get; set; }
public Guid RDId { get; set; }
}
從數據庫中,我獲得RRSDto的列表。 我需要將RRSD列表轉換為RRDS列表。 Id,Title,ProjectTile,RNumber,VNumber可以相同,但RDId可以不同。
這是我用LINQ嘗試過的:
var temp = (from r in rrs
group r by new
{
r.Id,
r.Title,
r.ProjectTitle,
r.RNumber,
r.VNumber,
} into gcs
select new RRDS()
{
R = new R()
{
Id = gcs.Key.Id,
Title = gcs.Key.Title,
RNumber = gcs.Key.RNumber,
VNumber = gcs.Key.VNumber
},
ProjectTitle = gcs.Key.ProjectTitle,
RDs = new List<RD>()
{
new RD()
{
RDId = gcs.ToList().Select(g => g.RDId).FirstOrDefault()
}
}
}).ToList();
而不是FirstOrDefault我想要RDIds的列表。 如何使用LINQ獲得它?
在此先感謝Suyog
如果您想要所有RDId
然后僅使用Select對其進行投影,由於您不在該組中尋找第一個RDId
,因此我看不到使用FirstOrDefault的任何理由。
,RDs = gcs.Select(g => new RD { RDId = g.RDId }).ToList()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.