C#合并数据的值等于另一个值的数据

时间:2017-11-06 06:10:53

标签: c# datagridview

我希望能够获得每个播放器的以下datagridview中所有列的平均值。例如,在附图中,播放器Terry Rozier突出显示。我想只显示Terry Rozier的1条记录,但是他的所有统计数据的平均值(例如:superstat第18列,工资第0列,fgmadepergame第4.5列等)

sumhelp

2 个答案:

答案 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);
        }