Исходя из личного опыта, я стараюсь избегать Datatable.Select. Я нахожу это медленным и имеет некоторые странные ошибки.
Одна (подтвержденная и задокументированная Microsoft) ошибка, с которой я столкнулся, заключалась в том, что DataTable.Select не всегда правильно оценивает условия AND, когда в операторе есть скобки.
Например, (Col1> 1) AND (Col <10) может не вернуть правильные ответы,
тогда как Col1> 1 И Col <10 будут работать правильно. </p>
Эта ошибка появляется не на каждом компьютере. В моем случае проверка, которую я использовал, работала нормально на моей платформе разработки и на каждом клиентском компьютере, кроме одного. После того, как я обнаружил эту ошибку, я начал переходить на использование LINQ для выбора и заметил значительное увеличение скорости операций.
Примечание: без подробных объяснений моя компания не использует базу данных для хранения данных. Все наших операций с DataTables связаны с таблицами памяти, загруженными из плоских файлов. Так что я говорю не о LINQ 2 SQL, а о LINQ to Dataset.