




Вы можете использовать int.TryParse. Он вернет логическое значение, если сможет проанализировать строку и установить для параметра out значение
int val;
if (int.TryParse(inputString, out val))
{
//dosomething
}
Вы можете использовать System.Int32.TryParse и сделать что-то вроде этого ...
string str = "10";
int number = 0;
if (int.TryParse(str, out number))
{
// True
}
else
{
// False
}
Есть два немедленных варианта, которые вы можете использовать.
Опция 1 - предпочтительный - использовать Int32.TryParse.
int res;
Console.WriteLine(int.TryParse("sss", out res));
Console.WriteLine(int.TryParse("123", out res));
Console.WriteLine(int.TryParse("123.45", out res));
Console.WriteLine(int.TryParse("123a", out res));
Это выводит:
False
True
False
False
Вариант 2 - использовать регулярные выражения
Regex pattern = new Regex("^-?[0-9]+$", RegexOptions.Singleline);
Console.WriteLine(pattern.Match("sss").Success);
Console.WriteLine(pattern.Match("123").Success);
Console.WriteLine(pattern.Match("123.45").Success);
Console.WriteLine(pattern.Match("123a").Success);
Это выводит:
False
True
False
False
Привет, проголосовал за дополнение регулярным выражением. Я не думаю о том, чтобы использовать его в повседневной работе в достаточном количестве. Спасибо.
Этот ответ верен только в том случае, если число всегда будет от -2 147 483 648 до 2 147 483 647. Если он больше, вам понадобится long.TryParse (). НАПРИМЕР: 16-значный номер кредитной карты ...