Однако я обнаружил, что LINQ может t перевести регулярное выражение.
Я также пробовал сделать следующее:
Код: Выделить всё
List numbers = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];
var queryableNumbers = numbers.AsQueryable();
from ...
where
...
&& row.content.ToUpper().StartsWith(searchTerm)
&& !queryableNumbers.Any(number => row.content.Substring(searchTerm.Length).Contains(number))
...
Я все сделал лучше всего протестировать все компоненты по отдельности (
Код: Выделить всё
Contains()Все, что я могу придумать, это сохранить первую строку блока while и переместить логику второй строки из запроса LINQ в дополнительный цикл для фильтрации моих результатов. Другими словами:
- Используйте LINQ для получения данных, удовлетворяющих условиям ^[0-9]+
- Отфильтруйте с помощью цикла for или какой-либо другой параметр, чтобы убедиться, что ^[0-9]+[^0-9]*$ выполнено
Подробнее здесь: https://stackoverflow.com/questions/788 ... base-query
Мобильная версия