面试题精选04-使用Linq怎么将数据分组之后按时间排序取最新1条数据

news/2024/11/20 22:26:28/文章来源:https://www.cnblogs.com/mingcore/p/18559480

实体类

public class Movie
{public string Name { get; set; }public string Area { get; set; }public DateTime ProductTime { get; set; }
}

初始化数据

public static List<Movie> InitData()
{List<Movie> data = new List<Movie>(){new Movie(){ Name="功夫",Area="中国香港",ProductTime=new DateTime(2004, 12, 23) },new Movie(){ Name="无间道",Area="中国香港",ProductTime=new DateTime(2002, 12, 12) },new Movie(){ Name="霍元甲",Area="中国大陆",ProductTime=new DateTime(2006, 01, 25) },new Movie(){ Name="我不是药神",Area="中国大陆",ProductTime=new DateTime(2018, 07, 05) },new Movie(){ Name="让子弹飞",Area="中国大陆",ProductTime=new DateTime(2010, 12, 16) },new Movie(){ Name="肖申克的救赎",Area="美国",ProductTime=new DateTime(1994, 09, 10) },new Movie(){ Name="阿甘正传",Area="美国",ProductTime=new DateTime(1994, 07, 06) },new Movie(){ Name="蜘蛛侠2",Area="美国",ProductTime=new DateTime(2004, 06, 30) },};return data;
}

方式一

 static void Main(string[] args){List<Movie> data = InitData();var groupData = data.OrderByDescending(a => a.ProductTime).GroupBy(a => a.Area).Select(group => new{Area = group.Key,Name = group.FirstOrDefault().Name,ProductTime = group.FirstOrDefault().ProductTime});foreach (var item in groupData){Console.WriteLine($"电影名称:{item.Name},上映地区:{item.Area},上映时间:{item.ProductTime.ToString("yyyy-MM-dd")}");}}

方式二

 static void Main(string[] args){List<Movie> data = InitData();var groupData = data.GroupBy(a => a.Area).Select(group => group.OrderByDescending(item=>item.ProductTime).FirstOrDefault());foreach (var item in groupData){Console.WriteLine($"电影名称:{item.Name},上映地区:{item.Area},上映时间:{item.ProductTime.ToString("yyyy-MM-dd")}");}}

方式三

static void Main(string[] args)
{List<Movie> data = InitData();var groupData = from item in dataorderby item.ProductTime descendinggroup item by item.Area into groupdataselect groupdata.FirstOrDefault();foreach (var item in groupData){Console.WriteLine($"电影名称:{item.Name},上映地区:{item.Area},上映时间:{item.ProductTime.ToString("yyyy-MM-dd")}");}
}

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/837565.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WEB攻防-PHP应用文件包含LFIRFI伪协议编码算法无文件利用黑白盒

什么是文件包含 1、原理 程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时, 直接调用此文件,而无须再次编写,这种调用文件的过程一般被称为文件包含。 在包含文件的过程中,如果文件能进行控制(如进行替换和修改),则存储文件包含漏洞白盒发现: 在php…

局部变量和成员变量的区别

1,区别2.内存位置不同如图,主方法里的变量stu1和stu2在栈内存,new开辟空间后,name变量在堆内存 . 3.生命周期不同 1.随着对象的消失而消失 https://kdocs.cn/l/cuQvFYJirzaR?linkname=150996495 主方法进栈,遇到method,method进栈,有new进堆,name成员变量进入空间 随着…

53.8 MB/s,新晋开源神器榨干你的网速:Gopeed!

软件介绍 今天给大家推荐一款全平台多线程高速下载器(支持磁力BT):Gopeed !Gopeed(全称 Go Speed),中文名叫做够快下载器,是一款由 Golang + Flutter 开发的现代化高速下载器,它是一款全平台多线程高速下载器,支持Windows、Macos、Linux、Android、iOS、Web、Docker、…

几个实用渲染技术原理和实现

一、快速高斯模糊 1.1 背景 ​ ​​  高斯模糊在wiki上定义为一种图像模糊滤波器,使用正态分布计算每个像素输出颜色。正态分布函数和图像如下所示: \[G(u,v)=\frac{1}{2\pi\delta^2}e^{(-u^2+v^2)/(2\delta^2)} \] ​ ​​  由图可以发现,当x在\(-3\delta\)到\(3\del…

STM32F103嵌套向量中断控制器

一、STM32F103中断介绍 1.1 什么是中断 中断:打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行;举例:当你正在写作业时,做到一半又去吃饭,吃完饭后又回来接着原来的作业继续完成。 对于单片机来说,中断是指CPU正在处理某个事件A,发生了另一件事件…

NFLS贪心与数据结构题单笔记(未完结)

A. 奶牛飞车贪心,把最慢的放前面#include <bits/stdc++.h> using namespace std; constexpr int maxn = 1e6 + 10; int n, m, d, L; int s[maxn]; int ans = 0; inline bool cmp(int x, int y) { return x > y; } int main() {cin >> n >> m >> d …

提取图片中目标物轮廓的像素尺寸

利用OpenCV库,对图片空间转化、灰度处理、二值化处理等,寻找图片中目标物轮廓像素尺寸。1.导入数据库 import cv2 import numpy as np from PIL import Image2.导入图片 image_tif = Image.open(1.tif) #导入tif图像 image_tif.convert(RGB).save(1p.png,PNG) # 转换为png格…

[极客大挑战 2019]BuyFlag

点击右上角的菜单,有一个payflag,直接点击,进入到了pay.php页面发现,需要得到flag有两个要求:必须是该校的学生,密码必须正确。在该页面的网页底部,有代码提示,要求密码不能是纯数字,最后又要==404密码才正确。我们可以想到利用php的弱类型比较:只要前缀有404就好。那…

Thinkpad P14s 的 archlinux 成长手册(i3-wm 窗口管理器)

目录电脑信息i3-wm 快捷键分辨率调整终端版文件管理器壁纸设置触摸板配置合盖后不休眠i3 配置文件截图工具剪切板i3lock-color卸载 i3lock安装 i3lock-color定义配置文件i3 配置文件增加锁屏配置i3 主题和图标修改i3 工作区配置分配应用程序到工作区工作区字体修改i3 启用透明效…

一键生成美观的彩页演示+AI的训练过程科普

一键生成美观彩页 + AI训练揭秘:让你的内容瞬间高大上! 阅读时间: 8分钟 | 字数: 1300+ 你是否曾为制作精美的演示文稿而烦恼?是否对AI的训练过程充满好奇?今天,让我们一起探索如何用AI一键生成美观彩页,同时揭秘ChatGPT的训练过程! 🌟 天工AI彩页:内容创作的革命 🤔事情…

2个月搞定计算机二级C语言——真题(12)解析

1. 前言 本篇我们讲解2个月搞定计算机二级C语言——真题122. 程序填空题 2.1 题目要求2.2 提供的代码 #include <stdio.h> #define N 3 int fun(int (*a)[N]) {int i, j, m1, m2, row, colum;m1 = m2 = 0;for (i = 0; i < N; i++){j = N - i - 1; m1 += a[i][…

mini-lsm通关笔记Week2Day5

项目地址:https://github.com/skyzh/mini-lsm 个人实现地址:https://gitee.com/cnyuyang/mini-lsmSummary 在本章中,您将:实现manifest文件的编解码。 系统重启时从manifest文件中恢复。要将测试用例复制到启动器代码中并运行它们, cargo x copy-test --week 2 --day 5 ca…