包含空单元格的datagridview的2列Linq max


double MaxSales = 0;
MaxSales = dgvSales.Rows.Cast<DataGridViewRow>()
.Where(z => z.Cells["Jaar"].Value.ToString() == lblSelectedJaar.Text)
.Where(o => o.Cells["vHigh"].Value != DBNull.Value)
.Where(oo => oo.Cells["VLow"].Value != DBNull.Value)
.Max(s => Convert.ToDouble(s.Cells["VLow"].Value) + Convert.ToDouble(s.Cells["vHigh"].Value));

如果其中一列上有一个空单元格,那么它将不会返回最大值。

我理解您想将DBNull.Value视为0:

double MaxSales = dgvSales.Rows.Cast<DataGridViewRow>()
.Where(z => z.Cells["Jaar"].Value.ToString() == lblSelectedJaar.Text)
.Select(o => (o.Cells["vHigh"].Value == DBNull.Value ? 0 : Convert.ToDouble(s.Cells["vHigh"])) 
+ (o.Cells["VLow"].Value == DBNull.Value ? 0 : Convert.ToDouble(s.Cells["VLow"])))
.Max();

最新更新