DataGridView删除constains exe扩展的行

时间:2018-03-29 08:25:42

标签: c# .net

我有一个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

                        }

3 个答案:

答案 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 );
    }   
}