我希望能够获得每个播放器的以下datagridview中所有列的平均值。例如,在附图中,播放器Terry Rozier突出显示。我想只显示Terry Rozier的1条记录,但是他的所有统计数据的平均值(例如:superstat第18列,工资第0列,fgmadepergame第4.5列等)
答案 0 :(得分:0)
我建议不使用相同的网格视图并合并结果,您可以使用以下方案添加另一个网格视图以显示所选行:
获取第一个Grid视图的Selected行并将其放入数据表中 (或列表)
foreach(DataGridViewRow in dataGridView1.SelectedRows) { //将所选行的数据放入数据表行中,例如.... }
验证所选行是否适用于同一个播放器(如果 需要)
计算您想要的列的平均值
设置第二个Gridview的数据源并将其绑定
答案 1 :(得分:0)
使用Linq计算出来:
var dupGroups = dt.AsEnumerable()
.GroupBy(row => row.Field<string>("Name"))
.Where(g => g.Count() > 1);
foreach (var group in dupGroups)
{
DataRow first = group.First();
int sum = group.Sum(r => r.Field<int>("SuperStat"))/group.Count();
first.SetField("SuperStat", sum);
foreach (DataRow row in group.Skip(1))
dt.Rows.Remove(row);
}