[英]Populate list of object using group by in LINQ
I've the following classes 我有以下课程
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; }
}
From the database i get the list of RRSDto. 从数据库中,我获得RRSDto的列表。 i need to convert the list of RRSDto to list of RRDS.
我需要将RRSD列表转换为RRDS列表。 The Id, Title, ProjectTile, RNumber, VNumber can be same but the RDId will be different.
Id,Title,ProjectTile,RNumber,VNumber可以相同,但RDId可以不同。
This is what i've tried with LINQ: 这是我用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();
Instead of FirstOrDefault i want the list of RDIds. 而不是FirstOrDefault我想要RDIds的列表。 How do i get it using LINQ?
如何使用LINQ获得它?
Thanks in advance, Suyog 在此先感谢Suyog
如果您想要所有RDId
然后仅使用Select对其进行投影,由于您不在该组中寻找第一个RDId
,因此我看不到使用FirstOrDefault的任何理由。
,RDs = gcs.Select(g => new RD { RDId = g.RDId }).ToList()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.