在DataGrid上获取点的最大值

时间:2017-07-27 14:51:57

标签: c# .net winforms c#-4.0 datagrid

我有一个数据网格,用户将以英寸而不是英尺输入高度,我想捕获最高的人(仅基于脚)。我尝试了下面的语法,但是我得到了一个编译错误:

  

非可调用成员' DataGridViewRow.Cells不能像方法一样使用

这是我的语法 - 在数据网格中获取第1列的最大值的适当方法是什么?

double MaxVal = 0;
foreach (DataGridViewRow row in HeightGrid.Rows)
{
    if (row.Cells(1).Value > MaxVal)
    {
        MaxVal = row.Cells(1).Value;
    }
}

2 个答案:

答案 0 :(得分:2)

获得最大值:

MaxVal = dataGridView.Rows.Cast<DataGridViewRow>()
                    .Max(r => Convert.ToDouble(r.Cells[1].Value));

其中Cells[1]表示第二列。

到第二个问题:

var biggestRow = dataGridView.Rows.Cast<DataGridViewRow>()
                    .Aggregate((r1,r2) => Convert.ToDouble(r1.Cells[1].Value) > Convert.ToDouble(r2.Cells[1].Value) ? r1 : r2);

这应该会为您提供第二列中具有最大值的行。从那里,您可以提取第一个和第二个单元格。

答案 1 :(得分:0)

这意味着Cells是属性,而不是方法,因此应该作为DataGridViewRow.Cells访问,而不是DataGridViewRow.Cells()。