我有一个数据网格,用户将以英寸而不是英尺输入高度,我想捕获最高的人(仅基于脚)。我尝试了下面的语法,但是我得到了一个编译错误:
非可调用成员' DataGridViewRow.Cells不能像方法一样使用
这是我的语法 - 在数据网格中获取第1列的最大值的适当方法是什么?
double MaxVal = 0;
foreach (DataGridViewRow row in HeightGrid.Rows)
{
if (row.Cells(1).Value > MaxVal)
{
MaxVal = row.Cells(1).Value;
}
}
答案 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()。