Aan*_*Aan 0 .net c# vb.net datagridview row
我尝试循环遍历dataGridView1并删除不满足以下条件的行:
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (!(Convert.ToDateTime(row.Cells[7].Value) - DateTime.Today).Days <= 0)
{
dataGridView1.Rows.Remove(row); //error: Uncommitted new row cannot be deleted.
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到了这个错误:
无法删除未提交的新行。
如果代码也是VB.NET,我可以管理。
在这种情况下不要使用foreach,循环集合可能会被修改并导致不可预测的结果,有时会抛出异常,例如集合被修改(主要在 中遇到LINQ),请改用for:
for(int i = dataGridView1.RowCount-1; i >= 0; i--){
var row = dataGridView1.Rows[i];
if (!row.IsNewRow&&!(Convert.ToDateTime(row.Cells[7].Value) - DateTime.Today).Days <= 0){
dataGridView1.Rows.Remove(row);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,我们必须从最大索引到 0 循环。
| 归档时间: |
|
| 查看次数: |
10455 次 |
| 最近记录: |