将具有一种类型的项目列表添加到另一个对象

时间:2015-01-20 15:55:33

标签: c#

这似乎是一个相当直接的问题,但由于某种原因,我很难用它。我有一个班级,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中)。

3 个答案:

答案 0 :(得分:0)

假设qualificationDtoQualificationDto类型对象的实例,您可以通过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)
}

这就是你想要的。如果我没有正确理解你,请纠正我。