问题描述
|
因此,我正在做作业,并且被困在一个地方。我必须编写一个计算器,该计算器需要2个数字以及+,-,*,/或%,然后它将执行适当的数学运算。我得到了数字部分,并进行了错误检查,但字符部分使我困惑。我尝试了IndexOf和IndexOfAny,它说没有包含5个参数的重载方法。我从Contains得到了类似的答复。
这是我所拥有的,请帮忙!非常感谢您提供的任何帮助!
Console.Write(\"\\r\\nPlease enter either +,-,* or / to do the math.\\r\\n\");
ReadModifier:
inputValue = Console.ReadLine();
if (inputValue.IndexOfAny(\"+\",\"-\",\"*\",\"/\",\"%\"))
{
modifier = Convert.tochar(inputValue);
goto DoMath;
}
else
{
Console.Write(\"\\r\\nPlease enter either +,* or / to do the math.\\r\\n\");
goto ReadModifier;
}
解决方法
int index = inputValue.IndexOfAny(new char[] {\'+\',\'-\',\'*\',\'/\',\'%\'});
if (index != -1)
{
modifier = inputValue[index];
goto DoMath;
}
, IndexOfAny使用char [],而不是char参数,因此您可以这样写:
inputValue.IndexOfAny(new char[] {\'a\',\'b\',\'c\'})
, 你可以做
if (new []{\"+\",\"-\",\"*\",\"/\",\"%\"}.Any(i => inputValue.IndexOf(i) >= 0))
{
....
}
要么
if (inputValue.IndexOfAny(new[] {\'+\',\'%\'}) >= 0)
{
....
}