linq分组

// 示例数据 Student[] students = { new Student { StuID = 1, StuName = "小陈", Course = "C++基础" }, new Student { StuID = 2, StuName = "小林", Course = "VB入门" }, new Student { StuID = 3, StuName = "小邓", Course = "C++基础" }, new Student { StuID = 4, StuName = "小李", Course = "C#客户端开发" }, new Student { StuID = 5, StuName = "小唐", Course = "C++基础" }, new Student { StuID = 6, StuName = "小周", Course = "VB入门" }, new Student { StuID = 7, StuName = "小张", Course = "VB入门" }, new Student { StuID = 8, StuName = "小吴", Course = "C#客户端开发" }, new Student { StuID = 9, StuName = "小孙", Course = "C++基础" }, new Student { StuID = 10, StuName = "小孟", Course = "C#客户端开发" } }; // 按课程进行分组 var res = from s in students group s by s.Course; // 输出 foreach (IGrouping<string, Student> item in res) { Console.WriteLine("----- {0} -----", item.Key); foreach (Student stu in item) { Console.WriteLine("学号:{0},姓名:{1},课程:{2}", stu.StuID, stu.StuName, stu.Course); } Console.WriteLine(); } // 筛选出学号大于5的学员 // 并按课程进行分组 // 学号按降序排列 res = from s in students orderby s.StuID descending where s.StuID > 5 group s by s.Course into g select g; // 输出 Console.WriteLine("\n********************************************"); foreach (var g in res) { Console.WriteLine("----- {0} -----", g.Key); foreach (Student stu in g) { Console.WriteLine("学号:{0},姓名:{1},课程:{2}", stu.StuID, stu.StuName, stu.Course); } Console.WriteLine(); }
posted @ 2017-03-05 00:00  PhilXu  阅读(135)  评论(0编辑  收藏  举报