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