c# Linq组按DateTime忽略小时和分钟

本文关键字:小时 分钟 Linq 组按 DateTime | 更新日期: 2023-09-27 18:08:25

我有一个SortedList,其中DateTime为键,int为值。DateTime值将附带小时和分钟。是否有可能编写一个c# linq过程来将SortedList按单个日期分组,忽略小时并总结值?

c# Linq组按DateTime忽略小时和分钟

使用LINQ非常简单:

from item in list
group item by item.Key.Date into g
select new 
{
   Sum = g.Sum(a => a.Value),
   Values = g
};

一个日期?

简单!

假设您已经将变量singleDate声明为DateTime以获取其总和,下面是查询:

var result = (
        from key in sortedList.Keys.Cast<DateTime>()
        where key.Date == singleDate.Date
        select (int)sortedList[key]
    ).Sum();

我已经使用singleDate.Date来删除singleDate可能具有的任何时间信息,但除此之外,这应该是相当直接的。

SortedList在使用LINQ时有点痛苦。你能告诉我你为什么用它吗?