2010-02-26 27 views

Respuesta

9
int a = int.Parse(myString); 

o mejor aún, mira en int.TryParse(string)

19
int myInt = System.Convert.ToInt32(myString); 

Como muchos otros han mencionado, también se puede utilizar int.Parse() y int.TryParse().

Si está seguro de que el string siempre habrá un int:

int myInt = int.Parse(myString); 

Si desea comprobar si string es realmente una primera int:

int myInt; 
bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second value 
if (isValid) 
{ 
    int plusOne = myInt + 1; 
} 
5

Si está Asegúrese de tener un número "real" en su cadena, o si se siente cómodo con cualquier excepción que pueda surgir, use esto.

string s="4"; 
int a=int.Parse(s); 

Por un poco más de control sobre el proceso, utilice

string s="maybe 4"; 
int a; 
if (int.TryParse(s, out a)) { 
    // it's int; 
} 
else { 
    // it's no int, and there's no exception; 
} 
5

hacer algo como:

var result = Int32.Parse(str); 
127

Si está seguro de que va analiza correctamente, utilice

int.Parse(string) 

Si no lo está, use

int i; 
bool success = int.TryParse(string, out i); 

¡Precaución! En el siguiente caso, i será igual a 0, no a 10 después del TryParse.

int i = 10; 
bool failure = int.TryParse("asdf", out i); 

Esto se debe a TryParse utiliza un cabo parámetro, no es un parámetroref.

+2

@sslaitha, gracias. Si contestó su pregunta lo suficiente, recuerde marcarla como la respuesta. – Brandon

+3

Solo tenga en cuenta que si tiene int i = 10; y use int.TryParse ("asdf", out i); que contendré 0 no 10 !!! Esto se debe a que TryParse usa una variable de salida, no una referencia. – CaffGeek

+2

La "precaución" se aplica al tercer ejemplo, no al segundo. Me confundí un poco ya que esperaba que "esto" se refiriera al ejemplo anterior, no a continuación. –

3
int i; 
string whatever; 

//Best since no exception raised 
int.TryParse(whatever, out i); 

//Better use try catch on this one 
i = Convert.ToInt32(whatever); 
6
string varString = "15"; 
int i = int.Parse(varString); 

o

int varI; 
string varString = "15"; 
int.TryParse(varString, out varI); 

int.TryParse es más seguro ya que si se pone algo más en varString (por ejemplo, "fsfdsfs") que se obtendría una excepción. Al usar int.TryParse cuando la cadena no se puede convertir a int, devolverá 0.

0
int i; 

string result = Something; 

i = Convert.ToInt32(result); 
0
class MyMath 
{ 
    public dynamic Sum(dynamic x, dynamic y) 
    { 
     return (x+y); 
    } 
} 

class Demo 
{ 
    static void Main(string[] args) 
    { 
     MyMath d = new MyMath(); 
     Console.WriteLine(d.Sum(23.2, 32.2)); 
    } 
} 
+0

considera dar una explicación a tu código – arghtype

1

4 techniques are benchmarked here.

La forma más rápida resultaron ser los siguientes:

y = 0; 
for (int i = 0; i < s.Length; i++) 
     y = y * 10 + (s[i] - '0'); 

"s" es la cadena que desea convertir a un int. Este código supone que no tendrá ninguna excepción durante la conversión. Entonces, si sabes que tus datos de cadena siempre serán de algún tipo de valor int, el código anterior es la mejor manera de obtener velocidad pura.

Al final, "y" tendrá su valor int.

0

Puede utilizar cualquiera,

int i = Convert.ToInt32(myString); 

o

int i =int.Parse(myString); 
1

resultado bool = Int32.TryParse (someString, fuera someNumeric)

Este método tratará de convertir su string someString en int someNumeric y devolviéndonos boolean result. true si la conversión fue exitosa y false si la conversión falló. Tenga en cuenta que este método no lanzará una excepción si la conversión falló como lo hizo el método Int32.Parse y en su lugar devuelve cero para someNumeric.

Para obtener más información, puede leer aquí:

https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
&
How to convert string to integer in C#

Cuestiones relacionadas