Converti la stringa in int e verifica il successo in C #
Domanda
Come puoi verificare se una stringa è convertibile in un int?
Supponiamo di avere dati come " House " ;, " 50 " ;, " Dog " ;, " 45.99 " ;, voglio sapere se dovrei semplicemente usare la stringa o usare invece il valore int analizzato.
In JavaScript abbiamo avuto questa parseInt () . Se la stringa non potesse essere analizzata , verrebbe restituita NaN.
Soluzione
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);
}
Altri suggerimenti
Non potresti renderlo un po 'più elegante eseguendo il tryparse proprio nel if?
In questo modo:
if (Int32.TryParse(value, out number))
Console.WriteLine("Converted '{0}' to {1}.", value, number);
int.TryParse
trovato questo in uno dei risultati della ricerca: Come faccio a identificare se una stringa è un numero?
Aggiungendo questo perché le risposte che ho visto prima non avevano uso:
int n;
bool isNumeric = int.TryParse("123", out n);
qui " 123 "
può essere qualcosa di simile alla stringa s = " 123 "
che l'OP sta testando e il valore n
avere un valore ( 123
) dopo la chiamata se viene trovato numerico.