2009-01-01 9 views
31

Wie kann man prüfen, ob ein Stringumwandelbar zu einem int?Convert String in int und Test Erfolg in C#

Lassen Sie uns sagen, dass wir Daten wie „House“, „50“, „Dog“, „45,99“, will ich wissen, ob ich nur die Zeichenfolge verwenden sollte oder die analysierte int Wert stattdessen verwenden.

In JavaScript hatten wir diese parseInt() Funktion. Wenn die Zeichenfolge nicht geparst werden konnte, würde es NaN zurückgeben.

Antwort

59

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

Ich habe es bearbeitet, so dass alle Fehler behoben wurden –

+1

Excellent, und es gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war. Vielen Dank! –

+2

+1 Ich mag die Lösung, aber es könnte ein wenig eleganter sein, indem Sie es direkt in die if-Anweisung ausführen. – BenAlabaster

11

Könnten Sie es nicht schaffen, ein wenig mehr elegant durch die TryParse rechts in die, wenn ausgeführt wird?

Wie so:

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

diese gefunden in eines der Suchergebnisse: How do I identify if a string is a number?

Addiert man diese, weil die Antworten, die ich zuvor gesehen hatte Nutzung nicht:

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

hier "123" kann etwas wie String s = "123" sein, dass das OP testet und der Wert n einen Wert hat (123) nach dem Anruf, wenn sich herausstellt, dass es numerisch ist.