簡體   English   中英

DataGridView刪除包含exe擴展名的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM