首页 > 代码库 > LINQ学习——Group

LINQ学习——Group

一、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 }
View Code

     

技术分享
 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         }
View Code

 

LINQ学习——Group