C# Linq按日期分组忽略小时和分钟

3

我有一个 SortedList,其中键为 DateTime 类型,值为 int 类型。DateTime 值将包含小时和分钟。是否可以编写 C# linq 过程来按单个日期分组 SortedList,忽略小时并汇总值?

2个回答

7
使用LINQ相当简单:
from item in list
group item by item.Key.Date into g
select new 
{
   Sum = g.Sum(a => a.Value),
   Values = g
};

0

通过一个单独的日期?

很容易!

假设您已经声明了变量singleDateDateTime,要获取总和,请使用以下查询:

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接