C# testing to see if a string is an integer?

Viewed 265927

I'm just curious as to whether there is something built into either the C# language or the .NET Framework that tests to see if something is an integer

if (x is an int)
   // Do something

It seems to me that there might be, but I am only a first-year programming student, so I don't know.

11 Answers

If you only want to check whether it's a string or not, you can place the "out int" keywords directly inside a method call. According to dotnetperls.com website, older versions of C# do not allow this syntax. By doing this, you can reduce the line count of the program.

string x = "text or int";
if (int.TryParse(x, out int output))
{
  // Console.WriteLine(x);
  // x is an int
  // Do something
}
else
{
  // x is not an int
}

If you also want to get the int values, you can write like this.

Method 1

string x = "text or int";
int value = 0;
if(int.TryParse(x, out value))
{
  // x is an int
  // Do something
}
  else
{
  // x is not an int
}

Method 2

string x = "text or int";
int num = Convert.ToInt32(x);
Console.WriteLine(num);

Referece: https://www.dotnetperls.com/parse

private bool isNumber(object p_Value)
    {
        try
        {
            if (int.Parse(p_Value.ToString()).GetType().Equals(typeof(int)))
                return true;
            else
                return false;
        }
        catch (Exception ex)
        {
            return false;
        }
    }

Something I wrote a while back. Some good examples above but just my 2 cents worth.

Maybe this can be another solution

try
{
    Console.Write("write your number : ");
    Console.WriteLine("Your number is : " + int.Parse(Console.ReadLine()));
}
catch (Exception x)
{
    Console.WriteLine(x.Message);
}
Console.ReadLine();

It is possible to try this as well:

    var ix=Convert.ToInt32(x);
    if (x==ix) //if this condition is met, then x is integer
    {
        //your code here
    }
Related