这似乎是一个相当直接的问题,但由于某种原因,我很难用它。我有一个班级,QualificationDto:
public class QualificationDto
{
public QualificationDto()
{
}
[DataMember]
public String Name { get; set; }
[DataMember]
public Int32 QualificationId { get; set; }
[DataMember]
public List<CredentialDto> Credentials { get; set; }
}
它包含CrentialDto列表:
public class CredentialDto
{
public CredentialDto()
{
}
public CredentialDto(int id, string name)
{
CredentialId = id;
Name = name;
}
[DataMember]
public Int32 CredentialId { get; set; }
}
CredentialDto有其他属性,但我真正关心的是“CredentialId”。
我想做的是将“CredentialId”转移到另一个类的IList中,QualificationEntity:
public class QualificationEntity
{
public virtual String Name{ get; set; }
public virtual Int32 QualificationId{ get; set; }
public virtual IList<CredentialEntity> CredentialsList { get ;set ;}
}
CredentialEntity:
public class CredentialEntity
{
public CredentialEntity()
{
}
public virtual Int32 CredentialId { get; set; }
}
所有这一切的重点在于我需要使用“凭据”中的ID(在顶部的QualificationDto中)填充“CredentialsList”(在QualificationEntity中)。
答案 0 :(得分:0)
假设qualificationDto
是QualificationDto
类型对象的实例,您可以通过Credentials
列表中每个项目的简单投影得到您想要的内容,如下所示:
var credentialsList = qualificationDto.Credentials
.Select(c => new
CredentialEntity(c.CredentialId)
).ToList();
答案 1 :(得分:0)
我认为这是你正在寻找的东西。它会为每个CredentialEntity
创建一个新的CredentialDto
到一个新列表中并复制每个ID。
qualificationEntry.CredentialsList = qualificationDto.Credentials.Select(c =>
new CredentialEntity
{
CredentialId = c.CredentialId
}).ToList();
答案 2 :(得分:0)
foreach (CredentialDto credential in QualificationDto.Credentials)
{
CredentialEntity entity = new CredentialEntity();
entity.CredentialId=CredentialDto.CredentialId;
QualificationEntity.CredentialsList.Add(entity)
}
这就是你想要的。如果我没有正确理解你,请纠正我。