c#lambda + group每3行然后SUM,AVG并取第一行

时间:2016-11-18 06:47:29

标签: c# lambda group-by

我有一个类状态列表。

public partial class Status
{
    public string thisStatus { get; set; }
    public int a { get; set; }
    public int b { get; set; }
    //more fields
}

然后我想按列表分组每3行。

例如,我有7个状态:status1~status7。然后它将按[status1-status3],[status4-status6],[status7]

进行分组
List<Status> tmpResult = new List<Status>();
//tmpResult get data
var grouped = tmpResult
              .Select((x, index) => new { x, index })
              .GroupBy(g => g.index / 3, i => i.x);
foreach (var stat in grouped)
{
    int totalDistance = stat.Select(x => x.a).Sum();
    int avgSpeed = Convert.ToInt32(stat.Select(x => x.b).Average());

    Status firstInGroup = stat.First(); //here I got an error
}
  

无法隐式转换类型&#34;&lt;匿名类型:X.Models.Status x,int index&gt;&#34;到&#34; X.Models.Status&#34;

任何帮助将不胜感激。 THX

0 个答案:

没有答案