[英]DataGridView remove row which constains exe extensions
我有一個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
}
從當前正在迭代的集合中刪除項目是個壞主意。 將當前row
放入一個臨時集合中,並在 foreach循環后將其刪除。
循環播放時,您無法從集合中刪除項目。 創建一個列表,以保留要刪除的行,並在循環內填充它。 然后,您可以在另一個循環中將其刪除:
foreach(DataGridRow row in yourList)
dataGridViewgrida.Rows.Remove(item);
您應該使用反向循環並根據索引刪除行:
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 );
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.