c# - 选择每天的最新条目

标签 c# linq

考虑简单类

public class Data
{
    public DateTime Date;
    public object Content;
}

现在我有一个 IEnumerable<Data>称为 datas我希望 Linq 将每天的旧项目分类。这样如果有同一天的项目,我只对当天的最新项目感兴趣。

这可以用 Linq 实现吗?

最佳答案

这里是你如何做到的:

var result =
    datas
     //Group by day (we don't include time here)
    .GroupBy(x => x.Date.Date)
    //For each group (day), get most recent item (we include time here)
    .Select(g => g.OrderByDescending(x => x.Date).First()) 
    .ToList();

为了提高可读性,您还可以在 Select 语句中使用 x.TimeOfDay 而不是 x.Date

关于c# - 选择每天的最新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37498620/

相关文章:

C#:使用未分配的局部变量,使用 foreach 和 if

C# Linq over XML => Lambda 表达式

c# - 使用 Mono : Can't connect to my sqlite database 的 Linq to SQL

c# - 如何在 LINQ 中选择查询时存储变量?

c# - 在 `this` 子句的谓词内部传递 `.Where` 会导致它发生变异吗?

c# - 无法使用值 [MinimalLock] 在对象 [log4net.Appender.RollingFileAppender] 上设置属性 [lockingModel]

c# - 为什么我的事件处理程序是目标 <>c?另外 - <>c 是什么?

c# - 连接到 OpenShift 服务

c# - 在 Linq C# 中按单列分组

c# - 什么时候将 RegistrationBuilder 传递给 Catalog?