如何使用 automapper 将逗号分隔的字符串或 int 映射到 IEnumerable<CustomClass>

How to map with comma delimited string or int to IEnumerable<CustomClass> using automapper

我从给定的数据库

中得到了 IEnumerable<Student> 的结果集
public class Student
{
    public int StudentId { get; set; }
    public int Name { get; set; }
    public string SubjectIds { get; set; } //Comma delimited string of subject ID
    public string Grades { get; set; } //Comma delimited string of subject ID
}

如何将其映射到给定的IEnumerable<StudentListItemDto>

public class StudentListItemDto
{
    public int StudentId { get; set; }
    public int StudentName { get; set; }
    public IEnumerable<SubjectGradeDto> Tags { get; set; }
}

给定 SubjectGradeDto

public class SubjectGradeDto 
{
    public int SubjectId { get; set; }
    public string Grade { get; set; }
}

我也很喜欢 linq 解决方案

如果'students'是DB给出的,那么:

    var mappedStudents = students.Select(student =>
      new StudentListItemDto
      {
          StudentId = student.StudentId,
          StudentName = student.Name,
          Tags = student.SubjectIds.Split(',').Select( (subject, i) => new SubjectGradeDto { SubjectId = int.Parse(subject), Grade = student.Grades.Split(',')[i] })
      });