C#在LINQ中使用GroupBy实现数据分组

更新时间:2024-02-01 02:38:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C#在LINQ中使用GroupBy实现数据分组

using System;

using System.Collections.Generic; using System.Linq; using System.Text;

namespace UseGroup {

//-----------------------------------------------------------------------------------------------------

public class Student {

public string Name { get; set; } public string City { get; set; } }

class Program {

static void Main(string[] args) {

/// 数据源

List Students = new List {

new Student { Name=\张三\, City=\北京\ }, new Student { Name=\李四\, City=\上海\ }, new Student { Name=\王五\, City=\北京\ }, new Student { Name=\赵六\, City=\重庆\ }, new Student { Name=\马七\, City=\北京\ }, new Student { Name=\牛八\, City=\上海\ }, new Student { Name=\杨九\, City=\北京\ }, new Student { Name=\阮十\, City=\广州\ }, new Student { Name=\萧十一\, City=\重庆\ }, new Student { Name=\伍十二\, City=\上海\ }, new Student { Name=\梁十三\, City=\广州\ }, new Student { Name=\黄十四\, City=\北京\ }, new Student { Name=\刘十五\, City=\重庆\ }, new Student { Name=\刀十六\, City=\上海\ }, new Student { Name=\元十七\, City=\重庆\ }, new Student { Name=\柳十八\, City=\北京\ }, new Student { Name=\吴十九\, City=\广州\ }, new Student { Name=\魏二十\, City=\上海\ } };

/// QueryStudentCity类型为:IEnumerable>

/// group by本质上是实现IGrouping接口的对象 /// TKey代表分组标识的类型,TElement代表分组中单个数据对象的类型

var QueryStudentCity = from student in Students group student by student.City;

/// QueryStudentCity类型为:IGrouping /// 为了分组现时所有数据,需要嵌套两层循环(两个泛型接口) /// 外层循环遍历每个组,内层循环遍历每个组中的元素 foreach (var CityGroup in QueryStudentCity) {

Console.WriteLine(\); Console.WriteLine(\在{0}的学生清单:\, CityGroup.Key);

int count = 0;

foreach (Student student in CityGroup) {

count++;

Console.WriteLine(\, count, student.Name, student.City); }

Console.WriteLine(\); }

Console.ReadKey(); } } }

本文来源:https://www.bwwdw.com/article/55hw.html

Top