DataTable
クラスは、DataRow.State
に基づいて行セットを取得するさまざまな手段を提供します。
'DataTable.Select` Methodがおそらく最も単純です。
dt.Select("", "", DataViewRowState.CurrentRows)
別DataViewを使用し、それをRowStateFilter
プロパティを設定することです。この例では、代わりにDataView
スタンドアロンインスタンスを作成するときにDataTable.DefaultView
プロパティを変更します。
Dim dt As New DataTable
dt.Columns.Add("c1")
For i As Int32 = 1 To 100
dt.Rows.Add(i)
Next
dt.AcceptChanges()
Debug.Print(dt.Rows.Count.ToString()) ' prints 100
For i As Int32 = 99 To 0 Step -2
dt.Rows.Item(i).Delete()
Next
Debug.Print(dt.Rows.Count.ToString()) ' prints 100
dt.DefaultView.RowStateFilter = DataViewRowState.CurrentRows
Dim count As Int32 = dt.DefaultView.Count
Debug.Print(count.ToString()) ' prints 50
' loop thru DataView rows
For Each drv As DataRowView In dt.DefaultView
Dim dr As DataRow = drv.Row
Debug.Print(dr.Item(0).ToString())
Next
これらのメソッドがルーピングソリューションよりも優れているかどうかは、オブザーバ側での主観的な呼び出しです。
私はこれが好きです。 1行。簡単です。ありがとう。 –
@IvanPerezこれが質問に答える場合は、チェックマークをクリックしてUnAnswered Listから外し、助けがあれば上矢印をクリックしてください。回答を受け入れると、他のユーザーが良い回答を見つけるのに役立ちます。 – Plutonix