我有一个 SortedList,其中键为 DateTime 类型,值为 int 类型。DateTime 值将包含小时和分钟。是否可以编写 C# linq 过程来按单个日期分组 SortedList,忽略小时并汇总值?
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时有点棘手。你能告诉我为什么要使用它吗?