How to convert string to integer in C#

C#.NetStringIntType Conversion

C# Problem Overview


How do I convert a string to an integer in C#?

C# Solutions


Solution 1 - C#

If you're sure it'll parse correctly, use

int.Parse(string)

If you're not, use

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

Caution! In the case below, i will equal 0, not 10 after the TryParse.

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

This is because TryParse uses an out parameter, not a ref parameter.

Solution 2 - C#

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

As several others have mentioned, you can also use int.Parse() and int.TryParse().

If you're certain that the string will always be an int:

int myInt = int.Parse(myString);

If you'd like to check whether string is really an int first:

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;
}

Solution 3 - C#

int a = int.Parse(myString);

or better yet, look into int.TryParse(string)

Solution 4 - C#

Do something like:

var result = Int32.Parse(str);

Solution 5 - C#

string varString = "15";
int i = int.Parse(varString);

or

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

int.TryParse is safer since if you put something else in varString (for example "fsfdsfs") you would get an exception. By using int.TryParse when string can't be converted into int it will return 0.

Solution 6 - C#

If you are sure that you have "real" number in your string, or you are comfortable of any exception that might arise, use this.

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

For some more control over the process, 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;
}

Solution 7 - C#

4 techniques are benchmarked here.

The fastest way turned out to be the following:

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

"s" is your string that you want converted to an int. This code assumes you won't have any exceptions during the conversion. So if you know your string data will always be some sort of int value, the above code is the best way to go for pure speed.

At the end, "y" will have your int value.

Solution 8 - C#

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);

Solution 9 - C#

bool result = Int32.TryParse(someString, out someNumeric)

This method will try to convert someString into someNumeric, and return a result depends if the conversion is successful, true if conversion is successful and false if conversion failed. Take note that this method will not throw exception if the conversion failed like how Int32.Parse method did and instead it returns zero for someNumeric.

For more information, you can read here:

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

Solution 10 - C#

int i;

string result = Something;

i = Convert.ToInt32(result);

Solution 11 - C#

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));
    }
}

Solution 12 - C#

You can use either,

    int i = Convert.ToInt32(myString);

or

    int i =int.Parse(myString);

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser282078View Question on Stackoverflow
Solution 1 - C#BrandonView Answer on Stackoverflow
Solution 2 - C#devuxerView Answer on Stackoverflow
Solution 3 - C#Neil NView Answer on Stackoverflow
Solution 4 - C#Tomas VanaView Answer on Stackoverflow
Solution 5 - C#MadBoyView Answer on Stackoverflow
Solution 6 - C#Daniel MošmondorView Answer on Stackoverflow
Solution 7 - C#user3810900View Answer on Stackoverflow
Solution 8 - C#madatanicView Answer on Stackoverflow
Solution 9 - C#jet_choongView Answer on Stackoverflow
Solution 10 - C#deepuView Answer on Stackoverflow
Solution 11 - C#AbdoView Answer on Stackoverflow
Solution 12 - C#DeadlockView Answer on Stackoverflow