这是我在C#中拥有的类之一:
public class Courses
{
[DataMember]
public string SchoolName { get; set; }
[DataMember]
public string MajorName { get; set; }
[DataMember]
public List<string> Course { get; set; }
public Courses()
{
Course = new List<string>();
}
}
每个专业都有一个班级列表。
在我的数据库中,我有3张表格,分别列出了与外国人联系的学校,专业和课程。一个简单的SQL表可以读取给定的学校:
SELECT
major.MajorName,
course.CourseName
FROM school
INNER JOIN major ON major.MajorID = course.MajorID
WHERE school.SchoolName = @SchoolName AND major.SchoolNameID = school.SchoolNameID GROUP BY major.MajorName;
因此,基于此,我希望数据如下。 (多个专业名称,每个专业都有多个课程)
MajorName CourseName
Science SC101
Science SC102
Science SC500
Math MA100
Math MA200
ENGLISH EN450
填充开始时派生的类的最佳方法是什么? 我在数据库读取查询中的类定义为:
List<Courses> majorclasses = new List<Courses>()
我可以通过读取不同的majorNames然后在循环中为每个majorName填充每个课程来手动管理数据以填充班级。
(pheudo code)
List<string> distinctMajors = majorClasses.Disticnt("majorNames").ToList()
foreach major in distinctMajors
{
course.Add(courseName)
}
还有其他更好的方法可以实现这一目标吗?
答案 0 :(得分:1)
您可以尝试一下。
List<Courses> courses = data.GroupBy(
d => new { d.SchoolName, d.MajorName},
d => d.CourseName,
(key,g) => new Courses {
MajorName = key.MajorName,
SchoolName = key.SchoolName,
Course = g.Distinct().ToList() }
).ToList();