咨询区

  • 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

可以有三种实现方式。

  1. 扩展方法实现

这种实现非常简单,参考如下代码:

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());
  1. 关键词实现

可以借用 from ... in ... group ... by ... into ... select 模式,参考如下代码:

var res = from element in listgroup element by element.F1into groupsselect groups.OrderBy(p => p.F2).First();
  1. 混合实现

混合实现的话,可以先 OrderBy 再 GroupBy ,参考如下代码:

var res = (from element in list).OrderBy(x => x.F2).GroupBy(x => x.F1).Select()

点评区

其中从每个分组中提取第一项的需求在实际业务开发中还是蛮多的,Rubens Mussi Cury 大佬用了三种方法做了实现,学习了。

如何使用 Linq 获取每个分组中的第一个元素?相关推荐

  1. php访问object元素,关于object:获取PHP stdObject中的第一个元素

    我有一个看起来像这样的对象(存储为$ videos) object(stdClass)#19 (3) {  [0]=> object(stdClass)#20 (22) {    [" ...

  2. pandas使用groupby.first函数、groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异)

    pandas使用groupby.first函数.groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异) 目录

  3. 从富文本中截取图片_JS 获取富文本中的第一张图片 (正则表达式)

    JS 获取富文本中的第一张图片 (正则表达式) JS 获取富文本中的第一张图片 url 正则公式及去除字符串里面的 html 标签 后台发来一个富文本字符串里面可能包含了 0,1,2,3... 个图片 ...

  4. 从富文本(html字符串)中获取图片,js获取富文本中的第一张图片(正则表达式)

    js获取富文本中的第一张图片url正则公式及去除字符串里面的html标签 后台发来一个富文本字符串里面可能包含了0.1.2.3-个图片标签(img),我们的任务是获取这个字符串里面第一张图片的url, ...

  5. 从富文本中截取图片_js获取富文本中的第一张图片(正则表达式)

    js获取富文本中的第一张图片url正则公式及去除字符串里面的html标签 后台发来一个富文本字符串里面可能包含了0.1.2.3-个图片标签(img),我们的任务是获取这个字符串里面第一张图片的url, ...

  6. 从键盘输入10个互不相同的整数,找出其中最小的元素将其与数组中的第一个元素进行交换。

    题目: /* 从键盘输入10个互不相同的整数,找出其中最小的元素将其与数组中的第一个元素进行交换. */ 代码: c++做的. #include<iostream> using names ...

  7. php 输出数组第一个元素,怎么在php中利用reset() 函数输出数组中的第一个元素

    怎么在php中利用reset() 函数输出数组中的第一个元素 发布时间:2021-01-16 09:37:11 来源:亿速云 阅读:66 作者:Leah 本篇文章给大家分享的是有关怎么在php中利用r ...

  8. 如何从 Java 的 List 中删除第一个元素

    概述 在这个实例中,我们将会演示如何删除在 Java 中定义的 List 的第 1 个元素. 我们将会针对这个问题使用 List 接口的 2 个实现 ArrayList 和 LinkedList 来进 ...

  9. list中抽出某一个字段的值_使用LINQ获取List列表中的某个字段值

    使用LINQ获取列表中的某个字段值,下面以获取员工列表中的编号字段为例子. 1.使用Select方法 1 List emplayeeList = GetEmplayeeList(); //获取员工信息 ...

最新文章

  1. [PVLDB 12] GraphLab : 分布式机器学习大规模图处理系统 学习总结
  2. 【Linux系统编程】特殊进程之守护进程
  3. fscanf和feof的组合使用
  4. this.$router.go()和this.$router.push()的区别
  5. ABAP Text表的实现原理
  6. (php)实现万年历
  7. Gym 100733G No Negations
  8. Docker镜像导致centos-root根分区容量爆满
  9. Shiro Spring 集成xml配置
  10. Tushare使用教程
  11. 某网站字幕加密的wasm分析
  12. 【加拿大签证】加拿大访问学者签证所需材料【加拿大访学签证,超详细,看一篇就够了】
  13. [Mysql] MOD函数
  14. 【附源码】计算机毕业设计java中小学在线考试系统设计与实现
  15. 什么蓝牙耳机适合打游戏?打游戏不延迟的蓝牙耳机推荐
  16. Qt Quick实现的文件传输工具(TCP传输篇)
  17. Echarts实现——中国地图
  18. OneNote的正确登出方式
  19. 计算机考研数学一用哪些书,2019计算机考研数学:常见三类参考书的使用方法...
  20. Win11 首个预览版来了!

热门文章

  1. c++ 整数取反_c++ 取反运算符“~”
  2. python可以调用windows资源吗_如何在Windows上用Python调用WinRar?还有问题吗
  3. Smarty目录结构和子目录路径问题
  4. day22 模块-collections,time,random,pickle,shelve等
  5. List集合的remove一个对象的方法
  6. 一些移动端开发的细节记录
  7. 如果你喜欢上了一个程序员小伙 献给所有程序员女友(来自ITeye博客的文章 作者:talent2012)...
  8. keil之编辑环境配置
  9. windows10加载动画_如何关闭动画并使Windows 10看起来更快
  10. 从Firefox控制您喜欢的音乐播放器