我只是好奇C#语言或.NET Framework是否内置了某些东西来测试某些东西是否是整数
if (x is an int)
// Do something
在我看来可能会有,但是我只是一年级的编程学生,所以我不知道。
Answers:
使用int.TryParse方法。
string x = "42";
int value;
if(int.TryParse(x, out value))
// Do something
如果解析成功,它将返回true,输出结果的值将为整数。
TryParse
方法。如果您有字符串,TryParse
通常最好使用using将其转换为这些类型之一。
< 0
检查一下即可。
我想我记得在看int.TryParse和int.Parse Regex和char.IsNumber和char.IsNumber之间的性能比较最快。无论如何,无论性能如何,这都是另一种实现方法。
bool isNumeric = true;
foreach (char c in "12345")
{
if (!Char.IsNumber(c))
{
isNumeric = false;
break;
}
}
isNumeric = false
...开头
如果只想检查传递变量的类型,则可以使用:
var a = 2;
if (a is int)
{
//is integer
}
//or:
if (a.GetType() == typeof(int))
{
//is integer
}
对于Wil P解决方案(请参见上文),您也可以使用LINQ。
var x = "12345";
var isNumeric = !string.IsNullOrEmpty(x) && x.All(Char.IsDigit);
如果你 只想检查它是否为字符串,则可以将“ out int”关键字直接放在方法调用内。根据dotnetperls.com网站的介绍,较旧的C#版本不允许使用此语法。这样,您可以减少程序的行数。
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
}
如果您还想获取int值,则可以这样编写。
方法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
}
方法2
string x = "text or int";
int num = Convert.ToInt32(x);
Console.WriteLine(num);
推荐人:https ://www.dotnetperls.com/parse
我已经进行了大约2周的编码,并创建了一个简单的逻辑来验证整数是否已被接受。
Console.WriteLine("How many numbers do you want to enter?"); // request a number
string input = Console.ReadLine(); // set the input as a string variable
int numberTotal; // declare an int variable
if (!int.TryParse(input, out numberTotal)) // process if input was an invalid number
{
while (numberTotal < 1) // numberTotal is set to 0 by default if no number is entered
{
Console.WriteLine(input + " is an invalid number."); // error message
int.TryParse(Console.ReadLine(), out numberTotal); // allows the user to input another value
}
} // this loop will repeat until numberTotal has an int set to 1 or above
如果您愿意,也可以在FOR循环中使用上述代码,方法是不将动作声明为循环的第三个参数,例如
Console.WriteLine("How many numbers do you want to enter?");
string input2 = Console.ReadLine();
if (!int.TryParse(input2, out numberTotal2))
{
for (int numberTotal2 = 0; numberTotal2 < 1;)
{
Console.WriteLine(input2 + " is an invalid number.");
int.TryParse(Console.ReadLine(), out numberTotal2);
}
}
如果您不想循环,只需删除整个循环支架
x
您的代码类型是什么?