私は C# の学習プロセスに取り組んでおり、これまでのところ順調に進んでいます。しかし、私は今、最初の「何を言う?」を打ちました。一瞬。
DataTable は、典型的なコレクションの動作だけでなく、DataTable.Select を介して、Rows コレクションへのランダムな行アクセスを提供します。ただし、この機能を DataRow.Delete に関連付けることはできないようです。これまでのところ、テーブルから 1 つまたは複数の行を条件付きで削除するには、これが必要なようです。
int max = someDataTable.Rows.Count - 1;
for(int i = max; i >= 0; --i)
{
if((int)someDataTable.Rows[i].ItemArray[0] == someValue)
{
someDataTable.Rows[i].BeginEdit();
someDataTable.Rows[i].Delete();
}
else
break;
}
someDataTable.AcceptChanges();
しかし、私はこのコードに満足していません。どちらも私は確信していません。私は何かが欠けているに違いない。条件付きで 1 つ以上の行を削除する必要がある場合、Rows コレクションを順番にヒットする必要がありますか?
(for の反転は気にしないでください。データテーブルの最後から削除しています。それで問題ありません)