如何使用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)
一些帮助/建议将不胜感激.
使用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)