Cómo convertir la cadena en Int en C#

  1. Conversión de C# string a int - Int16.Parse() / Int32.Parse() / Int64.Parse() Método
  2. Conversión de C# string a int - Int16.TryParse() / Int32.TryParse() / Int64.TryParse() Método
  3. C# Conversión de string a int - Convert.ToInt16() / Convert.ToInt32() / Convert.ToInt64() Método

Convertir una cadena a int es un paseo en el parque cuando se trata de codificar en C#, pero hay ciertas cosas que debes considerar. En este artículo, cubriremos algunos de los métodos más fáciles y recomendados para lograrlo.

Conversión de C# string a int - Int16.Parse() / Int32.Parse() / Int64.Parse() Método

El método Parse() puede utilizarse para convertir una representación de cadena de un número en un entero equivalente con signo de 16/32/64 bits. Para propósitos de representación, sólo cubriremos conversiones de 32 bits de aquí en adelante.

using System;

public class Instance{
    public static void Main(){
        string str_var = "123";
        int num_var = Int32.Parse(str_var);
        System.Console.WriteLine(num_var);
    }
}

Producción:

123

Una ligera desventaja de usar este método es que lanza una FormatException en caso de que la cadena no sea una secuencia de dígitos.

Aunque Parse() ignora los espacios en blanco al principio y al final de la cadena, aparte de eso, todos los caracteres deben tener un valor numérico apropiado para que la conversión tenga éxito.

Recomendamos la frase try...catch para manejar la excepción, como se muestra en la siguiente ilustración.

using System;

public class Instance{
    public static void Main(){
        string str_var = "abc";
        try
        {
            int num_var = Int32.Parse(str_var);
            System.Console.WriteLine(num_var);
        }
        catch (FormatException)
        {
            System.Console.WriteLine("Invalid String");
        }
    }
}

Producción:

Invalid String

Conversión de C# string a int - Int16.TryParse() / Int32.TryParse() / Int64.TryParse() Método

Considerado como una alternativa adecuada al método Parse(), el método TryParse() no lanza una excepción en caso de fallo. En su lugar, sólo devuelve False si la conversión falla, haciendo la implementación más simple.

using System;

public class Instance{
    public static void Main(){
        bool result;
        string str_var = "111";
        int num_var;
        result = Int32.TryParse(str_var, out num_var);
        if(result)
            System.Console.WriteLine(num_var);
        else
            System.Console.WriteLine("Invalid String");
    }
}

Producción:

111

C# Conversión de string a int - Convert.ToInt16() / Convert.ToInt32() / Convert.ToInt64() Método

El método Convert() toma como parámetro una variable de cadena y devuelve el valor numérico equivalente con signo de 16/32/64 bits. Similar al método Parse(), con este método necesitas una sentencia try...catch para las excepciones.

using System;

public class Instance{
    public static void Main(){
        string str_var = "123";
        try
        {
            int num_var = Convert.ToInt32(str_var);
            System.Console.WriteLine(num_var);
        }
        catch (FormatException)
        {
            Console.WriteLine("Invalid String");
        }
        catch (OverflowException)
        {
            Console.WriteLine("The string cannot fit in 32 bit value");
        }
    }
}

Producción:

123

Las excepciones son caras y no se consideran una buena práctica generalmente para incluirlas en el flujo del programa. Pero a veces pueden ser útiles para extraer información importante como la condición de desbordamiento en el método Convert().

Todos los métodos anteriores son igualmente efectivos y tienen ciertas compensaciones cuando se trata de la implementación. Recomendamos elegir el óptimo en base a las consideraciones que hemos expuesto en este artículo.

Artículo relacionado - Csharp Integer

  • Convertir Int en Enum en C#
  • Artículo relacionado - Csharp String

  • Convertir Double a Int en C#
  • Convertir Enum a String en C#