How to Identify if a String Is a Number in C#

Minahil Noor Feb 02, 2024
  1. C# Program to Identify if a string Is a Number Using Enumerable.All() Method
  2. C# Program to Identify if a string Is a Number Using Regex.IsMatch() Method
  3. C# Program to Identify if a string Is a Number Using Int32.TryParse() Method
  4. C# Program to Identify if a string Is a Number Using foreach Loop
How to Identify if a String Is a Number in C#

While dealing with real-world problems, sometimes, we face a problem where we want to take input as a string but use it as an integer. To make it possible we always have to confirm either the input string is a number or not.

In C#, we can use many methods to identify if an input string is a number or not. You will discover these methods while reading this article till the end.

C# Program to Identify if a string Is a Number Using Enumerable.All() Method

Enumerable.All() method belongs to LINQ. LINQ is a part of C# and is used to access different databases and data sources. We can modify this method to check if a string is a number. We will pass char.IsDigit() method as a parameter to Enumerable.All() method.

The correct syntax to use this method is as follows:

StringName.All(char.IsDigit);

Example Code:

using System;
using System.Linq;

public class IdentifyString {
  public static void Main() {
    string number = "123456";
    if (number.All(char.IsDigit)) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

Output:

The Given String is a Number.

C# Program to Identify if a string Is a Number Using Regex.IsMatch() Method

In C# we can use regular expressions to check various patterns. A regular expression is a specific pattern to perform a specific action. In C#, we have ^[0-9]+$ and ^\d+$ regular expressions to check if a string is a number.

The correct syntax to use this method is as follows:

Regex.IsMatch(StringName, @"Expression");

Example Code:

using System;
using System.Text.RegularExpressions;

public class IdentifyString {
  public static void Main() {
    string number = "123456";
    if (Regex.IsMatch(number, @"^[0-9]+$")) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

Output:

The Given String is a Number.

Here, the important point is that the two regular expressions, ^[0-9]+$ and ^\d+$ are not the same in their functioning. ^[0-9]+$ is used for the basic 0-9 characters but ^\d+$ is used for Decimal digit characters in the Unicode, without RegexOptions.ECMAScript specified(default). For example, as 4 in Thai, is also identified as a number.

C# Program to Identify if a string Is a Number Using Int32.TryParse() Method

Int32.TryParse() method is used to convert the string of numbers into a 32-bit signed integer. If the string is not numeric, it is not converted successfully, and hence this method returns false.

The correct syntax to use this method is as follows:

Int32.TryParse(StringName, out intvariable);

Here intvariable is any non-initialized integer variable.

Example Code:

using System;

public class IdentifyString {
  public static void Main() {
    int n;
    string number = "123456";
    bool result = Int32.TryParse(number, out n);
    if (result) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

Output:

The Given String is a Number.

C# Program to Identify if a string Is a Number Using foreach Loop

This is the most basic process to identify if a string is a number. In this process, we will check every character of the string to be a number using the foreach loop.

The correct syntax to use foreach loop is as follows:

foreach (datatype variablename in somecollection) {
  // steps to iterate
}

Example Code:

using System;

public class IdentifyString {
  // custom method to check if a string is a number
  public static bool CustomMethod(string number) {
    foreach (char c in number) {
      if (c >= '0' && c <= '9') {
        return true;
      }
    }
    return false;
  }
  public static void Main() {
    string number = "123456";
    if (CustomMethod(number)) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

Output:

The Given String is a Number.

Related Article - Csharp String