linq - 如何用逗号分隔的字符串或 int 映射到 IEnumerable使用自动映射器
问题描述
我有一个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] })
});
推荐阅读
- javascript - 从乱码元素中隐藏 1 个元素
- lilypond - Lilypond - 不能使用变量作为 \addlyrics 的一部分
- java - 将 org.apache.parquet.example.data.simple.SimpleGroup 转换为 org.apache.avro.generic.GenericData.Record
- javascript - 按数据激活 5 个按钮中的一个按钮
- azure-data-factory - 将 csv 中 2 列或更多列的值连接到 Azure 数据工厂中的单列
- arcore - 如何在前置摄像头中调整 ARCore 光线估计
- java - 如何使用包含数据库的 Rest Api 设计图书馆应用程序
- google-drive-api - 可恢复上传返回 null 并拒绝设置不安全的标头“content-length”
- python - 在 python 中为 fgplvm 导入或安装 ndlml
- c# - 我可以在 C# 中创建一个使用字典(应用于所有数据类型)作为参数的方法吗?