web-dev-qa-db-fra.com

Convertir une chaîne en int et tester le succès en C #

Comment vérifier si string est convertible en int?

Disons que nous avons des données comme "Maison", "50", "Chien", "45.99", je veux savoir si je devrais simplement utiliser le string ou utiliser plutôt la valeur analysée int.

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

35
Robinicks

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);         
  }
71
Johnno Nolan

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

Ainsi:

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

Int.TryParse

5
keithwarren7

trouvé ceci dans l'un des résultats de la recherche: Comment puis-je identifier si une chaîne est un nombre?

Ajoutant 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 ressembler à la chaîne s = "123" que l'OP teste et la valeur n aura une valeur (123) après l'appel si l'appel est numérique.