Преобразовать строку в int и проверить успех в C # - PullRequest
36 голосов
/ 02 января 2009

Как проверить, является ли строка конвертируемой в int?

Допустим, у нас есть данные типа "Дом", "50", "Собака", "45.99", я хочу знать, должен ли я просто использовать строку или использовать разобранный int значение вместо.

В JavaScript у нас была эта parseInt () функция. Если строка не может быть проанализирована , она вернется NaN .

Ответы [ 4 ]

71 голосов
/ 02 января 2009

Int32.TryParse(String, Int32) - http://msdn.microsoft.com/en-us/library/f02979c7.aspx

  bool result = Int32.TryParse(value, out number);
  if (result)
  {
     Console.WriteLine("Converted '{0}' to {1}.", value, number);         
  }
12 голосов
/ 02 января 2009

Не могли бы вы сделать его немного более элегантным, запустив tryparse прямо в if?

Вроде так:

if (Int32.TryParse(value, out number))     
  Console.WriteLine("Converted '{0}' to {1}.", value, number);
5 голосов
/ 02 января 2009

Int.TryParse

1 голос
/ 03 апреля 2017

нашел это в одном из результатов поиска: Как мне определить, является ли строка числом?

Добавление этого, потому что ответы, которые я видел раньше, не использовались:

int n;
bool isNumeric = int.TryParse("123", out n);

здесь "123" может быть чем-то вроде строки s = "123", которую проверяет OP, и значение n будет иметь значение (123) после вызова, если будет обнаружено, что оно является числовым.

...