当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《LINQ-帮我把握一个例子,我认为LINQ应该能够解决!》经验,为你挑选了1个好方法。

我正试图进入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;
}

正如您在示例中所看到的,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;
}

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

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



1> Marc Gravell..:

我改变了ArrayListList和:

    List source = new List();
    //...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(
                              from row in grp
                              select new Students
                              {
                                  Student_Age = row.Student_Age,
                                  Student_Name = row.Student_Name
                              })
                      }).ToList();

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有