我正试图进入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使用的结构.
我改变了ArrayList
对List
和:
Listsource = 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();