Итак, у меня есть IEnumerable<string>, который может содержать значения, которые могут быть проанализированы как int, а также значения, которые не могут быть.
Как вы знаете, Int32.Parse генерирует исключение, если строка не может быть изменена на int, а Int32.TryParse может использоваться для проверки и проверки того, возможно ли преобразование без обращения к исключению.
Итак, я хочу использовать LINQ-запрос для однострочного анализа, чтобы проанализировать те строки, которые могут быть проанализированы как int, но не выбрасывая исключение на этом пути. У меня есть решение, но я хотел бы получить совет от сообщества о том, является ли это наилучшим подходом.
Вот что у меня есть:
int asInt = 0;
var ints = from str in strings
           where Int32.TryParse(str, out asInt)
           select Int32.Parse(str);
Итак, как вы можете видеть, я использую asInt в качестве пространства скреста для вызова TryParse, чтобы определить, будет ли TryParse успешным (return bool). Затем, в проекции, я фактически выполняю синтаксический анализ. Это кажется уродливым.
Это лучший способ фильтрации анализируемых значений в одной строке с помощью LINQ?
