C# 林克分组难度

C# 林克分组难度,c#,linq,C#,Linq,我有一个列表myTask,其中我想按日期分组,并计算每个日期的总金额 我该怎么做 public class Task{ public DateTime Date{get;set;} public string Item {get;set;} public decimal Amount {get;set;} } public List<Task> taskList{ get; set; } 我怀疑你想要: var totals = taskList.GroupBy(x =

我有一个列表myTask,其中我想按日期分组,并计算每个日期的总金额

我该怎么做

public class Task{
public DateTime Date{get;set;}
public string Item {get;set;}
public decimal Amount {get;set;}    
}

 public List<Task> taskList{ get; set; }
我怀疑你想要:

var totals = taskList.GroupBy(x => x.Date)
                     .Select(g => new { Date = g.Key,
                                    Total = g.Sum(x => x.Amount) });
或一次性:

var totals = taskList.GroupBy(x => x.Date, (date, values) => 
                                 new { Date = date,
                                       Total = values.Sum(x => x.Amount) });
请注意,这是假设Date属性实际上是日期而不是时间戳。否则,您可能希望x=>x.Date.Date作为第一个参数

如果这不是你想要的,请说它与你想要的有什么不同

编辑:好的,如果你也想要这些项目——但可能不是每个项目的日期——你可以写:

var totals = taskList.GroupBy(x => x.Date, (date, values) => 
                       new { Date = date,
                             Total = values.Sum(x => x.Amount),
                             Items = values.Select(x => x.Item).ToList(),
                             Amounts = values.Select(x => x.Amount).ToList() });

谢谢@Jon,但我希望能够将所有值、日期、项目、金额以及总数发送到我的视图。我该怎么做?@learning:还不清楚你想要什么样的结果-你是按日期分组然后聚合。。。聚合结果自然不具有原始值。你说要把所有的值都发送给谁?如果您能更清楚地表示数据的方式,我们应该能够解决如何执行转换。我想按照上面所述进行分组和求和,但是,我还需要值项,以及金额,因为我将使用MVC在视图中显示值。我正试图上传一张如何显示数值的图片,但无法上传图片…@learning:但你还没有说你需要数据的形状。例如,您是否也需要按日期分组项目和金额?如果您可以发布您希望调用以使用此数据的代码,它可能会帮助我们了解您正在寻找的表示形式。@学习:否-查看您的任务类型:它有日期、项目和金额的值。。。不算总数。感觉你对这一切是如何结合在一起有点模糊。。。我会退后一步,确保您首先理解所涉及的每个步骤。