DataGridView & Linq



我试图在我的datagridview上使用以下linq查询:

var count = dgv_Checks.Rows.Cast<DataGridViewRow>()
                      .Count(row => row.Cells["SubmitToAch"]
                      .Value.ToString() == "True");

我允许添加到这个datagridview,所以有一个'添加行'在底部。每次它到达add行,它给我"对象引用未设置为对象的实例",不仅在这个查询中,而且在其他查询中。

是否有一种方法来处理linq查询或datagridview,并让它不看这个添加行?

另外,我如何修复上面的查询以跳过该行?

谢谢!

尝试添加空检查?

var count = dgv_Checks.Rows.Cast<DataGridViewRow>()
            .Count(row => row.Cells["SubmitToAch"] != null && row.Cells["SubmitToAch"].Value.ToString() == "True");

应该是

row.Cells["SubmitToAch"].Value != null

一个旧的帖子,但我觉得有必要回答,因为同样的问题今天早些时候一直困扰着我。被接受的答案提出的解决方案(检查null)仍然会导致对象引用异常,但是IsNewRow检查正确地跳过了添加的行:

var count = dgv_Checks.Rows.Cast<DataGridViewRow>()
            .Count(row => !row.IsNewRow && row.Cells["SubmitToAch"].Value.ToString() == "True");

相关内容

  • 没有找到相关文章

最新更新