DataTable создает индекс по столбцам для быстрого выполнения запросов Select ().Этот индекс сортируется по значению, затем он использует двоичный поиск, чтобы выбрать диапазон записей, который соответствует выражению запроса.
Таким образом, записи будут отсортированы следующим образом: 215,216,88,89,90,92,93, 94.Бинарный поиск выполняется, обрабатывая их как целое число (согласно нашему выражению фильтра), и не может найти определенные записи, потому что он предназначен для поиска только правильно отсортированных коллекций.
Индексирует данные в виде строки, а поиск в двоичном поиске - как число.См. Объяснение ниже.
string[] strArr = new string[] { "115", "118", "66", "77", "80", "81", "82" };
int[] intArr = new int[] { 215, 216, 88, 89, 90, 92, 93, 94 };
int i88 = Array.BinarySearch(intArr, 88); //returns -ve index
int i89 = Array.BinarySearch(intArr, 89); //returns +ve index
Это должно быть ошибкой во фреймворке.