我有一个datagridview,它存储带扩展名的文件的路径,我必须删除.exe扩展名的行。
我的代码:
foreach (DataGridViewRow row in dataGridViewgrida.Rows)
{
if (row.Cells[1].Value.ToString().Contains(".exe"))
row.Cells[1].Style.ForeColor = Color.Red;
dataGridViewgrida.Rows.RemoveAt(this.dataGridViewgrida.Rows.); // ?? I do not know how to do this
}
答案 0 :(得分:0)
从您当前正在迭代的集合中删除项目是一个坏主意。将当前row
放入临时集合中,并在 foreach循环后删除它们。
答案 1 :(得分:0)
循环播放时,无法从集合中删除项目。创建一个列表以保留您需要删除的行,并在循环中填充它。 然后你可以在另一个循环中删除它们:
foreach(DataGridRow row in yourList)
dataGridViewgrida.Rows.Remove(item);
答案 2 :(得分:0)
您应该使用反向循环并根据索引删除行:
for(int i=dataGridViewgrida.Rows.Count - 1; i>=0; i--)
{
var row = dataGridViewgrida.Rows[i];
if (row.Cells[1].Value.ToString().Contains(".exe"))
{
dataGridViewgrida.Rows.RemoveAt(i); // or dataGridViewgrida.Rows.Remove(row );
}
}