如何使用 Linq 获取每个分组中的第一个元素?
咨询区
Arian:
考虑下面的记录:
Id F1 F2 F3 -------------------------------------------------1 Nima 1990 102 Nima 1990 113 Nima 2000 124 John 2001 15 John 2002 2 6 Sara 2010 4
我的需求是对 F1
字段进行分组然后按 Id
排序,最后从每个分组中提取出第一条记录项,类似下面的结果。
Id F1 F2 F3 -------------------------------------------------1 Nima 1990 104 John 2001 16 Sara 2010 4
请问我如何用 Linq
来实现?
回答区
Rubens Mussi Cury:
可以有三种实现方式。
扩展方法实现
这种实现非常简单,参考如下代码:
var result = input.GroupBy(i => i.F1).Select(g => g.First());
扩展一下,如果想按照多个关键词分组,可以这样。
var result = input.GroupBy(i => new {i.F1, i.F2}).Select(g => g.First());
关键词实现
可以借用 from ... in ... group ... by ... into ... select
模式,参考如下代码:
var res = from element in listgroup element by element.F1into groupsselect groups.OrderBy(p => p.F2).First();
混合实现
混合实现的话,可以先 OrderBy 再 GroupBy ,参考如下代码:
var res = (from element in list).OrderBy(x => x.F2).GroupBy(x => x.F1).Select()
点评区
其中从每个分组中提取第一项的需求在实际业务开发中还是蛮多的,Rubens Mussi Cury
大佬用了三种方法做了实现,学习了。
如何使用 Linq 获取每个分组中的第一个元素?相关推荐
- php访问object元素,关于object:获取PHP stdObject中的第一个元素
我有一个看起来像这样的对象(存储为$ videos) object(stdClass)#19 (3) { [0]=> object(stdClass)#20 (22) { [" ...
- pandas使用groupby.first函数、groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异)
pandas使用groupby.first函数.groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异) 目录
- 从富文本中截取图片_JS 获取富文本中的第一张图片 (正则表达式)
JS 获取富文本中的第一张图片 (正则表达式) JS 获取富文本中的第一张图片 url 正则公式及去除字符串里面的 html 标签 后台发来一个富文本字符串里面可能包含了 0,1,2,3... 个图片 ...
- 从富文本(html字符串)中获取图片,js获取富文本中的第一张图片(正则表达式)
js获取富文本中的第一张图片url正则公式及去除字符串里面的html标签 后台发来一个富文本字符串里面可能包含了0.1.2.3-个图片标签(img),我们的任务是获取这个字符串里面第一张图片的url, ...
- 从富文本中截取图片_js获取富文本中的第一张图片(正则表达式)
js获取富文本中的第一张图片url正则公式及去除字符串里面的html标签 后台发来一个富文本字符串里面可能包含了0.1.2.3-个图片标签(img),我们的任务是获取这个字符串里面第一张图片的url, ...
- 从键盘输入10个互不相同的整数,找出其中最小的元素将其与数组中的第一个元素进行交换。
题目: /* 从键盘输入10个互不相同的整数,找出其中最小的元素将其与数组中的第一个元素进行交换. */ 代码: c++做的. #include<iostream> using names ...
- php 输出数组第一个元素,怎么在php中利用reset() 函数输出数组中的第一个元素
怎么在php中利用reset() 函数输出数组中的第一个元素 发布时间:2021-01-16 09:37:11 来源:亿速云 阅读:66 作者:Leah 本篇文章给大家分享的是有关怎么在php中利用r ...
- 如何从 Java 的 List 中删除第一个元素
概述 在这个实例中,我们将会演示如何删除在 Java 中定义的 List 的第 1 个元素. 我们将会针对这个问题使用 List 接口的 2 个实现 ArrayList 和 LinkedList 来进 ...
- list中抽出某一个字段的值_使用LINQ获取List列表中的某个字段值
使用LINQ获取列表中的某个字段值,下面以获取员工列表中的编号字段为例子. 1.使用Select方法 1 List emplayeeList = GetEmplayeeList(); //获取员工信息 ...
最新文章
- [PVLDB 12] GraphLab : 分布式机器学习大规模图处理系统 学习总结
- 【Linux系统编程】特殊进程之守护进程
- fscanf和feof的组合使用
- this.$router.go()和this.$router.push()的区别
- ABAP Text表的实现原理
- (php)实现万年历
- Gym 100733G 	No Negations
- Docker镜像导致centos-root根分区容量爆满
- Shiro Spring 集成xml配置
- Tushare使用教程
- 某网站字幕加密的wasm分析
- 【加拿大签证】加拿大访问学者签证所需材料【加拿大访学签证,超详细,看一篇就够了】
- [Mysql] MOD函数
- 【附源码】计算机毕业设计java中小学在线考试系统设计与实现
- 什么蓝牙耳机适合打游戏?打游戏不延迟的蓝牙耳机推荐
- Qt Quick实现的文件传输工具(TCP传输篇)
- Echarts实现——中国地图
- OneNote的正确登出方式
- 计算机考研数学一用哪些书,2019计算机考研数学:常见三类参考书的使用方法...
- Win11 首个预览版来了!
热门文章
- c++ 整数取反_c++ 取反运算符“~”
- python可以调用windows资源吗_如何在Windows上用Python调用WinRar?还有问题吗
- Smarty目录结构和子目录路径问题
- day22 模块-collections,time,random,pickle,shelve等
- List集合的remove一个对象的方法
- 一些移动端开发的细节记录
- 如果你喜欢上了一个程序员小伙 献给所有程序员女友(来自ITeye博客的文章 作者:talent2012)...
- keil之编辑环境配置
- windows10加载动画_如何关闭动画并使Windows 10看起来更快
- 从Firefox控制您喜欢的音乐播放器