我试图在我的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");