2009-01-01 7 views
31

Cómo se puede comprobar si una cadenaes convertible a un int ?Convertir a int y el éxito de prueba en C#

Supongamos que tenemos datos como "Casa", "50", "perro", "45.99", quiero saber si debo sólo tiene que utilizar el cadena o utilizar el valor analizado int lugar.

En JavaScript tuvimos esta función parseInt(). Si la cadena no se pudo analizar, sería volver NaN.

Respuesta

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

he estado editando, por lo que los errores pueden haber sido rectificada –

+1

excelente, y devuelve un valor que indica si la conversión tuvo éxito. ¡Gracias! –

+2

1 Me gusta la solución, pero podría ser un poco más elegante mediante la ejecución a la derecha en la sentencia if. – BenAlabaster

11

¿No podría hacerlo un poco más elegante mediante la ejecución del TryParse la derecha en el caso?

así:

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

encontraron esta en uno de los resultados de la búsqueda: How do I identify if a string is a number?

La adición de este, porque las respuestas que vi antes no tenían uso:

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

aquí "123" puede ser algo como cadena s = "123" que el PO está probando y el valor n tendrá un valor (123) después de la llamada si se encuentra que es numérico.