I am having an string like this
string str = \"dfdsfdsf8fdfdfd9dfdfd4\"
I need to check whether the string contains number by looping through the array.
If you are looking for an integer value you could use int.TryParse:
int result;
if (int.TryParse("123", out result))
{
Debug.WriteLine("Valid integer: " + result);
}
else
{
Debug.WriteLine("Not a valid integer");
}
For checking a decimal number, replace int.TryParse with Decimal.TryParse. Check out this blog post and comments "Why you should use TryParse() in C#" for details.
If you need decimal numbers, you could alternatively use this regular expression:
return System.Text.RegularExpressions.Regex.IsMatch(
TextValue, @"^-?\d+([\.]{1}\d*)?$");
And finally another alternative (if you are not religiously against VB.NET), you could use the method in the Microsoft.VisualBasic namespace:
Microsoft.VisualBasic.Information.IsNumeric("abc");
str.ToCharArray().Any(x => char.IsNumber(x));
in C# 2.0, try this:
string str = "dfdsfdsf8fdfdfd9dfdfd4";
for (int i = 0; i < str.Length; i++)
{
int result;
if (int.TryParse(str[i].ToString(), out result))
{
//element is a number
}
else
{
// not a number
}
}
str.ToCharArray().Any(char.IsNumber)
If you're going to loop through the string, DON'T use int.TryParse... that's way too heavy. Instead, use char.IsNumber();
example:
foreach (char c in myString)
if (char.IsNumber(c))
return true;
If you're a linq junkie like me, you'd do it this way
string s = "abc1def2ghi";
bool HasNumber = (from a in s.ToCharArray() where a >= '0' && a <= '9' select a).Count() > 0;