Question

Comment vérifier si une chaîne est convertible en int?

Supposons que nous ayons des données telles que "Maison", "50", "Chien", "45,99", je veux savoir si je devrais simplement utiliser la chaîne ou utiliser la valeur int analysée à la place.

En JavaScript, nous avions cette fonction parseInt () . Si la chaîne ne peut pas être analysée , elle sera renvoyée à NaN .

Était-ce utile?

La solution

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);         
  }

Autres conseils

Ne pourriez-vous pas le rendre un peu plus élégant en faisant passer le tryparse directement dans le if?

Comme si:

if (Int32.TryParse(value, out number))     
  Console.WriteLine("Converted '{0}' to {1}.", value, number);

Int.TryParse

a trouvé cela dans l'un des résultats de recherche: Comment identifier si une chaîne est un nombre?

Ajouter ceci parce que les réponses que j'ai vues auparavant n'avaient pas d'utilisation:

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

ici "123" peut être quelque chose comme la chaîne s = "123" que l'OP teste et la valeur n sera avoir une valeur ( 123 ) après l'appel s'il s'avère que celui-ci est numérique.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top