C# 将一种类型的项列表添加到另一个对象
这似乎是一个相当直截了当的问题,但出于某种原因,我很难处理它。我有一门课程,资格证书:C# 将一种类型的项列表添加到另一个对象,c#,C#,这似乎是一个相当直截了当的问题,但出于某种原因,我很难处理它。我有一门课程,资格证书: public class QualificationDto { public QualificationDto() { } [DataMember] public String Name { get; set; } [DataMember] public Int32 QualificationId { get; set; } [DataMe
public class QualificationDto
{
public QualificationDto()
{
}
[DataMember]
public String Name { get; set; }
[DataMember]
public Int32 QualificationId { get; set; }
[DataMember]
public List<CredentialDto> Credentials { get; set; }
}
CredentialTo还有其他属性,但我真正关心的是“CredentialId”
我想做的是将“CredentialId”转移到另一个类中的IList中,即资格实体:
public class QualificationEntity
{
public virtual String Name{ get; set; }
public virtual Int32 QualificationId{ get; set; }
public virtual IList<CredentialEntity> CredentialsList { get ;set ;}
}
所有这些的全部要点是,我需要用“凭证”(在QualificationDto顶部)中的ID填充“凭证列表”(在QualificationEntity中)。假设
QualificationDto
是QualificationDto
类型的对象的实例,您可以得到您想要的,通过对凭证
列表中每个项目的简单投影,如下所示:
var credentialsList = qualificationDto.Credentials
.Select(c => new
CredentialEntity(c.CredentialId)
).ToList();
我想这就是你要找的。它将为每个
CredentialTo
创建一个新的CredentialEntity
,并将每个id复制到一个新列表中
qualificationEntry.CredentialsList = qualificationDto.Credentials.Select(c =>
new CredentialEntity
{
CredentialId = c.CredentialId
}).ToList();
这就是你想要的。如果我没有正确理解你,请纠正我。我已编辑了你的标题。请参阅“”,其中的共识是“不,他们不应该”。
var credentialsList = qualificationDto.Credentials
.Select(c => new
CredentialEntity(c.CredentialId)
).ToList();
qualificationEntry.CredentialsList = qualificationDto.Credentials.Select(c =>
new CredentialEntity
{
CredentialId = c.CredentialId
}).ToList();
foreach (CredentialDto credential in QualificationDto.Credentials)
{
CredentialEntity entity = new CredentialEntity();
entity.CredentialId=CredentialDto.CredentialId;
QualificationEntity.CredentialsList.Add(entity)
}