@sslaitha, gracias. Si respondió suficientemente a su pregunta, 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 desconcertó un poco, ya que esperaba que "esto" se refiriera al ejemplo anterior, no al siguiente.
peter_mcc
22
int myInt = System.Convert.ToInt32(myString);
Como han mencionado varios otros, también puede usar int.Parse()y int.TryParse().
Si está seguro de que stringsiempre será un int:
int myInt = int.Parse(myString);
Si desea comprobar si stringrealmente es la intprimera vez:
int myInt;
bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second valueif (isValid)
{
int plusOne = myInt + 1;
}
string varString = "15";
int i = int.Parse(varString);
o
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParsees más seguro ya que si pones algo más varString(por ejemplo, "fsfdsfs") obtendrás una excepción. Al usar int.TryParsecuando la cadena no se puede convertir en int, regresará 0.
int i;
string whatever;
//Best since no exception raisedint.TryParse(whatever, out i);
//Better use try catch on this one
i = Convert.ToInt32(whatever);
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
"s" es la cadena que desea convertir en un int. Este código asume que no tendrá ninguna excepción durante la conversión. Entonces, si sabe que los datos de su cadena siempre serán algún tipo de valor int, el código anterior es la mejor manera de obtener velocidad pura.
bool result = Int32.TryParse(someString, out someNumeric)
Este método va a tratar de convertir someStringen someNumeric, y devolver una resultdepende de si la conversión es exitosa, truesi la conversión se realiza correctamente y falsesi la conversión fallado. Tenga en cuenta que este método no generará una excepción si la conversión falló como lo Int32.Parsehizo el método y, en cambio, devuelve cero para someNumeric.
Respuestas:
Si está seguro de que se analizará correctamente, use
int.Parse(string)
Si no es así, use
int i; bool success = int.TryParse(string, out i);
¡Precaución! En el caso siguiente,
i
será igual a 0, no a 10 después deTryParse
.int i = 10; bool failure = int.TryParse("asdf", out i);
Esto se debe a que
TryParse
utiliza un parámetro de salida , no un parámetro de referencia .fuente
int myInt = System.Convert.ToInt32(myString);
Como han mencionado varios otros, también puede usar
int.Parse()
yint.TryParse()
.Si está seguro de que
string
siempre será unint
:int myInt = int.Parse(myString);
Si desea comprobar si
string
realmente es laint
primera vez: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; }
fuente
int a = int.Parse(myString);
o mejor aún, mira en
int.TryParse(string)
fuente
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 pones algo másvarString
(por ejemplo, "fsfdsfs") obtendrás una excepción. Al usarint.TryParse
cuando la cadena no se puede convertir en int, regresará0
.fuente
Si está seguro de que tiene un número "real" en su cadena, o se siente cómodo con cualquier excepción que pueda surgir, use esto.
string s="4"; int a=int.Parse(s);
Para tener más control sobre el proceso, use
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; }
fuente
Haz algo como:
var result = Int32.Parse(str);
fuente
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);
fuente
Aquí se comparan 4 técnicas.
La forma más rápida resultó ser la siguiente:
y = 0; for (int i = 0; i < s.Length; i++) y = y * 10 + (s[i] - '0');
"s" es la cadena que desea convertir en un int. Este código asume que no tendrá ninguna excepción durante la conversión. Entonces, si sabe que los datos de su cadena siempre serán 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.
fuente
bool result = Int32.TryParse(someString, out someNumeric)
Este método va a tratar de convertir
someString
ensomeNumeric
, y devolver unaresult
depende de si la conversión es exitosa,true
si la conversión se realiza correctamente yfalse
si la conversión fallado. Tenga en cuenta que este método no generará una excepción si la conversión falló como loInt32.Parse
hizo el método y, en cambio, devuelve cero parasomeNumeric
.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
&
Cómo convertir cadenas a entero en C #
fuente
int i; string result = Something; i = Convert.ToInt32(result);
fuente
Puedes usar cualquiera,
int i = Convert.ToInt32(myString);
o
int i =int.Parse(myString);
fuente
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)); } }
fuente