如果我有这些字符串:
"abc" =假 "123" =真 "ab2" = false
是否有一个命令,如IsNumeric()或其他命令,可以识别字符串是否是有效的数字?
如果我有这些字符串:
"abc" =假 "123" =真 "ab2" = false
是否有一个命令,如IsNumeric()或其他命令,可以识别字符串是否是有效的数字?
当前回答
在c# 7中,你可以内联out变量:
if(int.TryParse(str, out int v))
{
}
其他回答
如果你想知道一个字符串是否是一个数字,你可以尝试解析它:
var numberString = "123";
int number;
int.TryParse(numberString , out number);
注意,TryParse返回一个bool值,您可以使用它来检查解析是否成功。
以防你不想用int。解析或双重。解析,你可以用这样的东西来滚动你自己的:
public static class Extensions
{
public static bool IsNumeric(this string s)
{
foreach (char c in s)
{
if (!char.IsDigit(c) && c != '.')
{
return false;
}
}
return true;
}
}
int n;
bool isNumeric = int.TryParse("123", out n);
从c# 7开始更新:
var isNumeric = int.TryParse("123", out int n);
或者,如果不需要这个数字,可以丢弃out参数
var isNumeric = int.TryParse("123", out _);
变量可以被它们各自的类型替换!
下面是c#方法。 Int。TryParse方法(String, Int32)
对于许多数据类型,您总是可以使用内置的TryParse方法来查看所讨论的字符串是否会通过。
的例子。
decimal myDec;
var Result = decimal.TryParse("123", out myDec);
结果将= True
decimal myDec;
var Result = decimal.TryParse("abc", out myDec);
结果将= False