2009-01-01 17 views
31

Jak można sprawdzić, czy ciąg jest zamienny do int?Konwersja ciąg do int i powodzenie testu w C#

Załóżmy, że mamy dane, takie jak „dom”, „50”, „Dog”, „45.99”, chcę wiedzieć, czy mam po prostu użyć ciąglub użyj przetworzoną wartość int zamiast.

W JavaScript mamy tę funkcję parseInt(). Jeśli ciąg znaków nie może być przeanalizowany pod numerem, zostanie przywrócony NaN.

Odpowiedz

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

Edytowałem, więc wszelkie błędy mogły zostać naprawione. –

+1

Doskonałe, i zwraca wartość wskazującą, czy konwersja się powiodła. Dzięki! –

+2

+1 Podoba mi się rozwiązanie, ale może być nieco bardziej eleganckie, wprowadzając go bezpośrednio do instrukcji if. – BenAlabaster

11

Nie można zrobić to trochę bardziej elegancki, uruchamiając tryparse prawo do if?

tak:

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

Znalazłem to w jednym z wynikami wyszukiwania: How do I identify if a string is a number?

dodanie tego zużycia, ponieważ odpowiedzi widziałem wcześniej nie miał:

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

tutaj "123" może być czymś w rodzaju ciągu s = "123", który testuje OP, a wartość n będzie miała wartość (123) po wywołaniu, jeśli zostanie znaleziony numeryczny.