我有一个SortedList,其中包含键的DateTime和值的int。 DateTime值将附加小时和分钟。是否有可能编写一个C#linq过程来将SortedList分组为一个Date而忽略小时并总结该值?
答案 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
可能包含的任何时间信息,但除此之外,这应该是相当直接的。
SortedList
有点痛苦。你能告诉我你为什么要用它吗?