C# 如何检查字符串是否为正整数?

C# 如何检查字符串是否为正整数?,c#,parsing,int,C#,Parsing,Int,我的意思是: 1231 YES 121.1241 NO 121,1241 NO -121 NO 124a NO 如何在C#中更快地执行此操作?实际解析它的另一种方法是检查字符串是否为非空且仅包含数字,如果您希望允许,可以选择使用前导的+符号 请注意,这不会执行任何范围检查-因此999999999999999999999999999999999999999将是有效的,即使它不适合int或long 您可以使用正则表达式,也可以使用LINQ: var nonNegative = text.Lengt

我的意思是:

1231 YES
121.1241 NO
121,1241 NO
-121 NO
124a NO

如何在C#中更快地执行此操作?

实际解析它的另一种方法是检查字符串是否为非空且仅包含数字,如果您希望允许,可以选择使用前导的
+
符号

请注意,这不会执行任何范围检查-因此999999999999999999999999999999999999999将是有效的,即使它不适合
int
long

您可以使用正则表达式,也可以使用LINQ:

var nonNegative = text.Length > 0 && text.All(c => c >= '0' && c <= '9');

var nonNegative=text.Length>0&&text.All(c=>c>='0'&&c您可以检查它是否只包含数字:

if (theString.All(Char.IsDigit))

正整数在什么范围内?(对于大于
int.MaxValue
int.LongValue
)的值,它应该怎么做?前导空格有效吗?前导+号怎么样?哦,那么0呢?你真的是指正的还是非负的?为什么不
uint.TryParse(str,out x)
相反?我可以想象它也更有效,因为它不必检查
-
我认为它需要更多的解释(而不是编写代码)。
if (theString.All(Char.IsDigit))