Linq,如何做groupBy?

2023-12-10

项目表:

ID、部门 ID、年份、名称、级别

Id = 1, DeptId = 1, Year = 2000, Name = "ABC", Level = 1
Id = 2, DeptId = 1, Year = 2001, Name = "ABC1", Level = 1
Id = 3, DeptId = 1, Year = 2002, Name = "ABC2", Level = 1

Id = 4, DeptId = 2, Year = 2000, Name = "ABC3", Level = 1
Id = 5, DeptId = 2, Year = 2002, Name = "ABC4", Level = 1

Id = 6, DeptId = 3, Year = 2000, Name = "ABC5", Level = 1
Id = 7, DeptId = 3, Year = 2001, Name = "ABC6", Level = 1
Id = 8, DeptId = 3, Year = 2002, Name = "ABC7", Level = 1

我有一个项目表。我需要获取 2001 年每个部门的项目。对于 DeptId = 2,它没有 2001 年的项目,我需要显示上一年的项目,即 2000 年。

我的 linq 应该返回以下结果。

Id = 2, DeptId = 1, Year = 2001, Name = "ABC1", Level = 1
Id = 4, DeptId = 2, Year = 2000, Name = "ABC3", Level = 1
Id = 7, DeptId = 3, Year = 2001, Name = "ABC6", Level = 1

我正在考虑使用 groupby,对 DeptId 进行分组,但不知道如何编写这个查询。

Update:

这就是我尝试过的。

var 项目 = 项目.Where(x=>x.Year == 2001)

但这不会返回 DeptId = 2 的结果,这就是为什么我正在考虑使用 groupby,但不知道如何编写它。


var query= from p in context.Projects
           group p by p.DeptId into grp
           select grp.Where(x => x.Year <= 2001)
                     .OrderByDescending(x => x.Year)
                     .FirstOrDefault();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linq,如何做groupBy? 的相关文章

随机推荐

  • 隐藏列表视图中的项目

    我试图隐藏自定义列表适配器中的项目 我可以隐藏文本的可见性 但无法隐藏整个列表项 它仍然显示分隔线等 我尝试过 tv setVisibility View INVISIBLE tv setVisibility View GONE conve
  • Elasticsearch 批量 API post 请求中出现 NewLine 错误

    我正在尝试使用elasticsearch批量API将多条记录插入到索引中 我的 JSON 看起来像这样 请求 json 我正在插入一个新行 n 在文档末尾 但我仍然得到newline error Error error root cause
  • Oracle to_date 与 p.m./a.m

    我需要在oracle中将字符串转换为日期 字符串的格式是这样的 08 11 1999 05 45 00 p m 但最后的位置可能会在下午或上午发生变化 我尝试做一些类似的事情 to date 08 11 1999 05 45 00 p m
  • AssertionError:标签类 15 超出 data/coco128.yaml 中的 nc=1。可能的类标签是 0-0

    最近几天我一直在构建 yolov5 环境并尝试运行它 我使用以下代码来测试我的设置是否成功 python train py img 640 data data coco128 yaml cfg models yolov5s yaml wei
  • 范围以及如何使用 VB.Net 缩小范围

    如果我想缩小 C 中变量的范围 我可以引入额外的大括号 即 class Program static void Main string args myClass x new myClass x MyProperty 1000 Console
  • 使用 Fragment 按钮打开另一个 Activity

    好吧 我尝试了两种类型的代码来让它工作 当我按下按钮进入另一个活动时 它不断地给我强制关闭 我正在使用一个片段 该片段代码中有一个按钮 但我似乎无法让它工作 我不是一名经验丰富的 Android 开发人员 但我正在尽力学习 这是 Java
  • NaN 作为特殊参数

    我正在写一个小库 你可以在其中设置范围 起点和终点是双精度的 该库具有该范围的一些内置或计算的默认值 但是一旦通过范围设置函数设置了它们 就无法返回到默认值 因此我喜欢做的就是使用NaN值作为使用默认值的指示符 但是我没有找到NaN的任何标
  • OData AspNetCore 对使用 $query 的长 URL 的支持不起作用

    正如所指出的this文章 与 query关键字可以解决7 5版本之后OData URL过长的问题Microsoft AspNetCore OData 但在我的项目中 我正在使用版本 8 preview3 我尝试使用这个但我不断得到404 未
  • OpenCV中无法使用SURF、SIFT

    我正在尝试一个简单的事情 比如 detector cv2 SIFT 并得到这个严重的错误 detector cv2 SIFT AttributeError module object has no attribute SIFT 我不明白 因
  • 根据多个条件按列名称过滤数据框

    我有一个包含许多列的 pandas 数据框 我想根据列名称但使用两个不同的标准来过滤数据框 我尝试使用 df filter 指定项目和正则表达式 但这是不允许的 如果列名称为 用户名 XYZ 1001 XYZ 1002 XYY 1001 X
  • GLIBC 安装失败,程序丢失或太旧

    我曾尝试使用非 root 来安装 glibc 2 15 经过谷歌搜索并尝试两天后 我在这里寻求帮助 After configure it output following error glibc 2 15 configure prefix
  • 反转范围会导致类型不匹配

    例如 我想使用一个变量来保存通常是某个范围的内容Range
  • JavaScript 中的查询字符串

    通过使用document referrer我们会得到JavaScript中所有URL的引用 例如 http localhost testwordpress wp admin admin php page thesis options upg
  • 如何在node中使用axios发布表单数据

    EDIT更改标题以便对其他人有帮助 我正在尝试将图像上传到imgbb使用 Axios 使用他们的 api 但不断收到错误响应Empty upload source imgbb 的 API 文档显示了以下示例 curl location re
  • 组合 datetime.date 和 datetime.time 对象的 Pythonic 方式

    我有两个代表同一事件实例的对象 一个保存日期 另一个保存该事件的时间 我想创建一个日期时间对象 由于不能简单地添加日期和时间对象 以下调用失败 datetime date 2011 01 01 datetime time 10 23 它位于
  • 如何在 python/matplotlib 中设置默认刻度参数?

    我希望我的所有绘图都具有指向内部的刻度 而不是 matplotlib 默认的外部 所以我正在寻找一种使用 plt rcparams 设置它的方法 对于每个情节 目前我正在做 ax tick params direction out 但这仅适
  • Ionic:任务“:mergeDebugResources”执行失败(某些文件处理失败)

    离子构建命令工作正常 直到我决定添加一些自定义启动屏幕并运行以下命令 离子资源 每次我运行构建命令时 我都会在运行构建命令时遇到以下错误 mergeDebugResourcesAAPT err Facade for 35126910 lib
  • SASS - 增加一个类并选择列表中的下一个变量

    我正在尝试进行一个设置 将类从 1 增加到 12 并根据变量列表 也是 12 个变量 设置背景颜色 我很接近 但没有得到我所希望的 这是我第一次涉足 SASS 中的控制指令 所以请原谅我的无知 目前 我正在成功增加班级 这是我错过的选择增量
  • 如何在 MVVM WPF 应用程序中向父视图通知子视图事件?

    我有一个基于 MVVM 的 WPF 桌面应用程序 我正在利用 MVVMLight 和 Prism 创建包含视图和子视图的用户控件 我在子视图上有按钮 假设这是一个关闭按钮 将单击事件的通知从嵌套子视图传播到其包含的父视图的最佳方法是什么 子
  • Linq,如何做groupBy?

    项目表 ID 部门 ID 年份 名称 级别 Id 1 DeptId 1 Year 2000 Name ABC Level 1 Id 2 DeptId 1 Year 2001 Name ABC1 Level 1 Id 3 DeptId 1 Y