In .net Int32.Parse
очень очень быстро, когда это успешно.
Когда происходит сбой, генерируется исключение - тогда оно очень медленное, потому что исключения медленные.
Вам нужно расширить свой тест - вам нужно проверить время для последовательности хороших и плохих строк, которая похожа на то, что вам нужно сделать.
Если вы уверены, что все ваши строки являются действительными целочисленными значениями, тогда Int32.Parse
- это то, что вам нужно. Если вы подозреваете, что допустимым будет немногим более незначительного числа, то гораздо быстрее использовать Int32.TryParse
, чем try-catch
в вашем цикле.
Обычно, если ваш try-catch
находится за пределами цикла, используйте Int32.Parse
- вы получите исключение и остановитесь, когда в первый раз получите недопустимое значение.
Если ваш try-catch
находится внутри цикла, используйте Int32.TryParse
.
Оба Int32.Parse
и Int32.TryParse
довольно высокооптимизированы и относительно зрелы - я ожидаю, что их будет очень сложно улучшить, если у вас нет особых обстоятельств.