visual verificar una net letra extraer existe example ejemplos dentro contiene caracteres caracter cadena buscar c# string parsing integer tryparse

net - En C#, ¿cómo verificar si una cadena contiene un entero?



string.indexof c# example (6)

Solo quiero saber si una variable String contiene un valor entero positivo analizable . No quiero analizar el valor en este momento.

Actualmente estoy haciendo:

int parsedId; if ( (String.IsNullOrEmpty(myStringVariable) || (!uint.TryParse(myStringVariable, out parsedId)) ) {//..show error message}

Esto es feo - ¿Cómo ser más conciso?

Nota: sé sobre los métodos de extensión, pero me pregunto si hay algo incorporado.


La respuesta parece ser simplemente no.

Aunque hay muchas otras respuestas buenas, o bien simplemente ocultan la fealdad (que no pedí) o introducen nuevos problemas (casos extremos).


Lo siento, no conseguí tu pregunta. Entonces, ¿algo como esto?

str.ToCharArray().Any(char.IsDigit);

¿O el valor tiene que ser un entero completamente, sin ninguna cadena adicional?

if(str.ToCharArray().All(char.IsDigit(c));


Podrías usar char.IsDigit :

bool isIntString = "your string".All(char.IsDigit)

Devolverá true si la cadena es un número

bool containsInt = "your string".Any(char.IsDigit)

Devolverá true si la cadena contiene un dígito


Puede verificar si la cadena contiene solo números:

Regex.IsMatch(myStringVariable, @"^-?/d+$")

Pero el número puede ser más grande que Int32.MaxValue o menor que Int32.MinValue , debes tenerlo en cuenta.

Otra opción: crear un método de extensión y mover el código feo allí:

public static bool IsInteger(this string s) { if (String.IsNullOrEmpty(s)) return false; int i; return Int32.TryParse(s, out i); }

Eso hará que tu código sea más limpio:

if (myStringVariable.IsInteger()) // ...



Tal vez esto pueda ayudar

string input = "hello123world"; bool isDigitPresent = input.Any(c => char.IsDigit(c));

respuesta de msdn .