int.TryParse syntatic sugar

int.TryPrase is great and all, but there is only one problem...it takes at least two lines of code to use:

int intValue;
string stringValue = "123";
int.TryParse(stringValue, out intValue);
....

Of course I can do something like:

string stringValue = "123";
int intValue = Convert.ToInt32(string.IsNullOrWhiteSpace(stringValue) ? 0 : stringValue); 

on just one line of code.

How can I perform some magic to get int.TryParse to use a one liner, or is there yet a third alternative out there?

Thanks!

Bezden answered the question best, but in reality I plan on using Reddogs solution.


Solution 1:

int intValue = int.TryParse(stringValue, out intValue) ? intValue : 0;

Solution 2:

Maybe use an extension method:

public static class StringExtensions
{
    public static int TryParse(this string input, int valueIfNotConverted)
    {
        int value;
        if (Int32.TryParse(input, out value))
        {
            return value;
        }
        return valueIfNotConverted;
    }
}

And usage:

string x = "1234";
int value = x.TryParse(0);

Edit: And of course you can add the obvious overload that already sets the default value to zero if that is your wish.