DateTime的C#Linq组忽略小时和分钟

时间:2011-09-13 23:13:10

标签: c# linq datetime group-by sum

我有一个SortedList,其中包含键的DateTime和值的int。 DateTime值将附加小时和分钟。是否有可能编写一个C#linq过程来将SortedList分组为一个Date而忽略小时并总结该值?

2 个答案:

答案 0 :(得分:7)

使用LINQ非常简单:

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

答案 1 :(得分:0)

按一个日期?

容易!

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

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

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

使用LINQ

SortedList有点痛苦。你能告诉我你为什么要用它吗?