私は5行のデーター配列DataRow[] drRequest
を持っています。 そしてiはforeach
を使用して各行を反復し、C#でDataRow []から行を削除する
foreach (DataRow dr in drRequest)
{
dr.Delete();
しかしその後drRequest.Length
私はDatatable
を使用することはできません5の代わりに0
を返すを使用して行を削除しています、私はDataRow[]
私は5行のデーター配列DataRow[] drRequest
を持っています。 そしてiはforeach
を使用して各行を反復し、C#でDataRow []から行を削除する
foreach (DataRow dr in drRequest)
{
dr.Delete();
しかしその後drRequest.Length
私はDatatable
を使用することはできません5の代わりに0
を返すを使用して行を削除しています、私はDataRow[]
DataRow.Delete
はこの行をDataTable
から削除しません。この行は、「DataAdapterを使用してdataAdapter.Updateを呼び出すと、データソースから削除されます」というマークが付けられます。削除したい場合には、Remove
を使用します。
foreach (DataRow dr in drRequest)
{
dr.Table.Rows.Remove(dr);
}
drRequest
が本当にDataRow[]
であれば、それは常には、(それがで始めることだったものは何でも)の長さを持つことになります。配列は長さを決して変更しません。決して。あなたはnull
の価値がありますが、後で配列を見ている他のコードでは期待されないかもしれません。これは、配列が単にであることの特徴です。
お客様代替データ構造を検討してください。たとえば、の場合は、List<T>
のものは削除できます。しかし、シーンの背後にはシャッフルダウンが含まれています。選択的に削除する場合は、list.RemoveAll(x => {return true to remove, false to keep});
がこれを最適に行う方法を知っています。
この行を使用する利点はありません:( – Devendra
@Devendra:配列を変更することはできません。固定サイズです。これを行うには、 'drRequest = drRequest [0] .Table .Select(); ' –