We discovered this method:

Dim _dataView As DataView = New DataView(_table, String.Empty, “CartonId Asc”, DataViewRowState.CurrentRows)
Dim _rowView As DataRowView() = _dataView.FindRows(_cartonId)

To be more efficient than this method:

Dim _rows() as DataRow

_rows = _table.Select(“criteria”)

Apparently, the first method creates an in-memory index which is “seeked” through with the find method whereas the second method must perform a table scan.