LINQ - 帮我把握一个例子,我认为LINQ应该能够解决!

Fle*_*ing 4 c# linq

我正试图进入LINQ对象,因为我可以看到它的力量.幸运的是,我有一个问题,我认为LINQ应该能够解决.

这是问题(细节是一个例子);

public class SchoolClass
{
    public int ID;
    public string Name;
    public string Teacher;
    public string RoomName;

    public string Student_Name;
    public int Student_Age;
}
Run Code Online (Sandbox Code Playgroud)

正如您在示例中所看到的,ClassName,Teacher和Room与学生之间存在一对多的关系,即一个班级中可能有许多学生.

如果我们有一个List,是否可以使用LINQ创建一个List但只有一个实例ID,Name,Teacher,RoomName和一个Student_Name和Age的ArrayList?

制作这个:

public class Students
{
    public string Student_Name;
    public int Student_Age;
}

public class SchoolClass
{
    public int ID;
    public string Name;
    public string Teacher;
    public string RoomName;

    public ArrayList Students;
}
Run Code Online (Sandbox Code Playgroud)

基本上,使用LINQ将List清理为更合理的结构?

给出这个例子的一些背景知识.DataGrid使用第二个结构来生成Master-Child关系.我们在类中存储SchoolClass和StudentInformation,如上所示.LINQ很好地将我们的初始List转换为可由DataGrid使用的结构.

Mar*_*ell 6

我改变了ArrayListList<Students>和:

    List<SourceData> source = new List<SourceData>();
    //...your data here ;-p
    var classes = (from row in source
                  group row by new {
                          row.ID, row.Name,
                          row.Teacher, row.RoomName }
                      into grp
                      select new SchoolClass
                      {
                          ID = grp.Key.ID,
                          Name = grp.Key.Name,
                          Teacher = grp.Key.Teacher,
                          RoomName = grp.Key.RoomName,
                          Students = new List<Students>(
                              from row in grp
                              select new Students
                              {
                                  Student_Age = row.Student_Age,
                                  Student_Name = row.Student_Name
                              })
                      }).ToList();
Run Code Online (Sandbox Code Playgroud)