C#中对泛型List进行分组输出元素
背景:在输出列表时,往往需要按照某一字段进行分组,比如在输出城市列表时,按照首字母进行分组,输出学生列表时,按照年级进行分组,然后再对分组的结果按照其他的字段进行排序。
如存在以下STU学生类,代码如下:
1 public class STU 2 { 3 public int ID { get; set; } 4 public string Name { get; set; } 5 public int Age { get; set; } 6 public string City { get; set; } 7 }
存在如下学生列表:
1 List<STU> stuList = new List<STU>() 2 { 3 new STU{ID=1,Name="Lily",Age=18,City="NewYork"}, 4 new STU{ID=2,Name="Lucy",Age=20,City="NewYork"}, 5 new STU{ID=1,Name="LiLei",Age=18,City="BeiJIng"} 6 };
先按照城市进行分组,在对同一城市中的学生,按照年龄进行排序,分别输出,代码如下:
1 foreach (IGrouping<string,STU> group in stuList.GroupBy(c=>c.City)) 2 { 3 Console.WriteLine("当前的城市为" + group.Key); 4 foreach (STU stu in group.OrderBy(a=>a.Age)) 5 { 6 Console.Write(stu.Name+";"); 7 } 8 Console.WriteLine(); 9 }
注意,IGroupoing存在两个参数,第一个参数对应于分组字段的类型,也就是说如果按照城市进行分组,则第一个参数的类型应该是string,如果是按照年龄进行分组,参数类型就应该是int。第二个参数,对应于List元素的类型,本例中为STU。
转载于:https://www.cnblogs.com/SharpL/p/4675645.html
C#中对泛型List进行分组输出元素相关推荐
- 技术图文:C#语言中的泛型 I
C#语言中的泛型 I 知识结构: 1. 泛型概述 泛型广泛应用于容器(Collections)和对容器操作的方法中. 从 .NET Framework2.0 开始,微软提供了一个新的命名空间Syste ...
- Java中的泛型 --- Java 编程思想
前言 我一直都认为泛型是程序语言设计中一个非常基础,重要的概念,Java 中的泛型到底是怎么样的,为什么会有泛型,泛型怎么发展出来的.通透理解泛型是学好基础里面中非常重要的.于是,我对<Ja ...
- MapReduce的自制Writable分组输出及组内排序
问题描述: 输入文件格式如下: name1 2 name3 4 name1 6 name1 1 name3 3 name1 0 要求输出的文件格式如下: name1 ...
- 优化 .NET Core logging 中的泛型 logger
优化 .NET Core logging 中的泛型 logger Intro 在微软的 logging 组件中,我们可以比较方便的使用泛型 Logger,如:ILogger<Generic> ...
- [译]聊聊C#中的泛型的使用
写在前面 今天忙里偷闲在浏览外文的时候看到一篇讲C#中泛型的使用的文章,因此加上本人的理解以及四级没过的英语水平斗胆给大伙进行了翻译,当然在翻译的过程中发现了一些问题,因此也进行了纠正,当然,原文的地 ...
- 将JSON对象中的某个字段进行分组和排序(java实现)
现在有这样一个数据 { "systemid": "123", "productid": "123", "dat ...
- .net中的泛型全面解析
从2.0起我们一直就在谈论泛型,那么什么是泛型,泛型有什么好处,与泛型相关的概念又该怎么使用,比如泛型方法,泛型委托.这一篇我会全面的介绍泛型. 那么首先我们必须搞清楚什么是泛型,泛型其实也是一种类型 ...
- TypeScript从入门到精通(二十一)类中的泛型
类中的泛型使用: 我们在写一个基本class类 在构造函数中需要传递一组女角色的名称,然后通过getGirlsNmae发方法展示女角色的名称 class GirlRole{constructor(pr ...
- 聊聊Java中的泛型
聊聊Java中的泛型 文章目录 聊聊Java中的泛型 参考资料 一.概述 1. 泛型的定义 1.1 定义 1.2 常见形式 2. 为什么需要泛型 3. 泛型的优点 4. 泛型的使用 4.1 泛型类 4 ...
最新文章
- HTML5标签的语义认知和理解
- C - Internet Address CodeForces - 245B(有些思维的水题)
- Android官方开发文档Training系列课程中文版:OpenGL绘图之图形定义
- 喝最烈的酒、挖最大的DONG——工具与技巧篇
- 如何让apache支持php,Apache怎么才能支持PHP程序?
- 「Python」conda与pip升级所有的包
- java数据文本格式转换_SpringMVC中Json数据格式转换
- Spark 广播变量和累加器
- Spring源码解析目录
- 华为CE6870固件升级 更新补丁操作
- MATLAB图像处理学习日记之__图像的K-means均值法与局部阈值和迭代式阈值分割法算法——整理资源汇总
- 【对话系统】Knowledge-Grounded Dialogue Generation with a Unified Knowledge Representation
- FPGA LVDS液晶屏
- 【题目精刷】2022诺瓦-数字IC设计
- hadoop 查看文件大小以及文件数
- PDF文本的提取(Linux)
- C语言中常见的转义字符总结
- java黑马面试_JavaWeb-黑马面面(面试刷题系统)项目实战
- C_.NET+Framdwork题库(未整理完,有时间再补)
- 灵魂筹码地图的设计要点