一、Group的作用
1、Group字句把select的对象根据一些标准进行分组。
2、从查询表达式返回的对象是从查询中枚举分组结果的可枚举类型。
3、每一个分组由一个叫做键的字段区分。
4、每一个分组本身是可枚举类型并可以枚举它的项。
二、LINQ表达式
Group object by field
实例:Student.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace LINQDemoWinForm 8 { 9 class Student 10 { 11 public int ID { get;set;} 12 public string SName { get; set; } 13 public int Age { get; set; } 14 public string Country { get; set; } 15 } 16 }
1 private void button3_Click(object sender, EventArgs e) 2 { 3 //初始化Student数组 4 Student[] arrStu = new Student[]{ 5 new Student{ID=1,SName="zhangsan",Age=20,Country="China"}, 6 new Student{ID=2,SName="lisi",Age=21,Country="Japan"}, 7 new Student{ID=3,SName="wangwu",Age=23,Country="China"}, 8 new Student{ID=4,SName="liuliu",Age=24,Country="American"}, 9 }; 10 //方式一、使用LINQ表达式来进行分组 11 //var query = from stu in arrStu 12 // group stu by stu.Country; 13 //方式二、使用LINQ标准查询运算符来进行分组 14 var query = arrStu.GroupBy(s => s.SName); 15 16 StringBuilder sbRes = new StringBuilder(); 17 //打印 18 foreach (var item in query) 19 { 20 sbRes.AppendFormat("Country:{0}",item.Key);//每一个分组有一个Key值 21 sbRes.AppendLine(); 22 foreach (var s in item) 23 { 24 sbRes.AppendFormat(" SName:{0},Age:{1}", s.SName, s.Age); 25 sbRes.AppendLine(); 26 } 27 } 28 MessageBox.Show(sbRes.ToString()); 29 }
时间: 2024-10-12 14:42:54