如何获取列表中多个列的总计并使用LINQ将其放入对象中?

Ala*_*an2 2 c# linq

如何使用LINQ获取列表中某些列的总数并将其放入对象中?

我有一个清单

List<History> a = getTodayData(); 
Run Code Online (Sandbox Code Playgroud)

我的班级历史看起来像这样:

public class History
{
    public Int32 Id { get; set; }
    public string YYMMDD { get; set; }
    public int Quiz { get; set; }
    public int Views { get; set; }
    public int Clicks { get; set; }
    public int Points { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想要的是用每个视图,点击和点的总数填充此对象.

public class Today
{
    public int Views { get; set; }
    public int Clicks { get; set; }
    public int Points { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

一些帮助/建议将不胜感激.

Sef*_*efe 5

使用LINQ,您可以单独计算总和:

Today today = new Today {
    Views = a.Sum(history => history.Views),
    Clicks = a.Sum(history => history.Clicks),
    Points = a.Sum(history => history.Points),
}
Run Code Online (Sandbox Code Playgroud)

在最不可能的事件中,您遇到此解决方案的性能问题,您始终可以使用非LINQ foreach循环:

Today today = new Today();
foreach(History history in a) {
    today.Views += history.Views;
    today.Clicks += history.Clicks;
    today.Points += history.Points;
}
Run Code Online (Sandbox Code Playgroud)