【问题标题】:C# Linq group by DateTime ignore hours and minutesC# Linq group by DateTime 忽略小时和分钟
【发布时间】:2011-09-13 23:13:09
【问题描述】:

我有一个 SortedList,其中键为 DateTime,值为 int。 DateTime 值将附加小时和分钟。是否可以编写一个 C# linq 过程来按单个日期对 SortedList 进行分组,而忽略小时并对值求和?

【问题讨论】:

    标签: c# linq datetime group-by sum


    【解决方案1】:

    使用 LINQ 非常简单:

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

    【讨论】:

      【解决方案2】:

      到一个日期?

      简单!

      假设您已将变量 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 有点痛苦。你能告诉我你为什么使用它吗?

      【讨论】:

        猜你喜欢
        • 2011-11-17
        • 1970-01-01
        • 2023-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-06
        • 1970-01-01
        相关资源
        最近更新 更多