Хотя здесь уже есть много решений, описывающих int.Parse
, во всех ответах чего-то не хватает. Как правило, строковые представления числовых значений различаются в зависимости от культуры. Элементы числовых строк, такие как символы валюты, разделители групп (или тысяч) и десятичные разделители, различаются в зависимости от культуры.
Если вы хотите создать надежный способ разбора строки на целое число, поэтому важно учитывать информацию о культуре. Если вы этого не сделаете, будут использованы текущие настройки культуры . Это может дать пользователю довольно неприятный сюрприз - или даже хуже, если вы анализируете форматы файлов. Если вы просто хотите разобрать английский язык, лучше просто сделать это явным, указав используемые настройки культуры:
var culture = CultureInfo.GetCulture("en-US");
int result = 0;
if (int.TryParse(myString, NumberStyles.Integer, culture, out result))
{
// use result...
}
Для получения дополнительной информации читайте о CultureInfo, в частности, NumberFormatInfo в MSDN.