Учитывая код ниже:DataView.RowFilter Vs DataTable.Select() против DataTable.Rows.Find()
Dataview someView = new DataView(sometable)
someView.RowFilter = someFilter;
if(someView.count > 0) { …. }
целый ряд статей, которые говорят Datatable.Select() лучше, чем при использовании DataViews, но это до VS2008.
Solved: The Mystery of DataView's Poor Performance with Large Recordsets
Array of DataRecord vs. DataView: A Dramatic Difference in Performance
погуглить на эту тему я нашел некоторые статьи/темы форума, которые затрагивают Datatable.Select() само по себе является довольно багги (не уверен в этом) и невысока в различных сценариях.
Об этой теме (Best Practices ADO.NET) на msdn предлагается, чтобы при наличии первичного ключа, определенного в datatable, методы findrows() или find() должны использоваться insted of Datatable.Select().
Эта статья here (.NET 1.1) сравнивает все три подхода плюс еще пару. Но это для версии 1.1, поэтому не уверен, что они действительны еще сейчас. Accroding к этому DataRowCollection.Find() превосходит все подходы и Datatable.Select() превосходит DataView.RowFilter.
Так что я совершенно смущен тем, что может быть лучшим подходом к поиску строк в datatable. Или нет единого хорошего способа сделать это, в зависимости от сценария существуют несколько решений?
Благодарим за вознаграждение! – thmshd