例えば一見するとうまく動きそうなコードがある。DataGridViewから複数行を選択して削除するコードである。 var c = from DataGridViewRow r in dataGridView1.Rows where r.Selected select r; DataRow dr; foreach (DataGridViewRow dgvr in c) { dr = ((DataRowView)dgvr.DataBoundItem).Row; dr.Delete(); } しかし、上のコードがうまく動かない。cにはDataGridViewRowのコレクションが入っているように思うかもしれないが、そうではないからである。実は、 foreach (DataGridViewRow dgvr in c) を実行する度に var c = from DataGridViewRow r i