运算符“>”和“<”不能应用于 'string' 和 'string' C# 类型的操作数

Operator '>' and '<' cannot be applied to operands of type 'string' and 'string' C#

2015 年 Visual Studio 制作的 C# 程序要求用户猜测 1-10 中的一个数字,该数字将告诉用户猜测是否正确,是否大于或小于必须猜测的值。

static void Main(string[] args)
    {
        string rightGuess = "7";

        Console.WriteLine("Guess the right number from 1-10: ");
        string userGuess;
        userGuess = Console.ReadLine();
        {
            if (userGuess == rightGuess)
                Console.WriteLine("You guessed right!");
            else if (userGuess > rightGuess)
                Console.WriteLine("Wrong guess. Your guess was greater than the right guess.");
            else (userGuess < rightGuess)
                Console.WriteLine("Wrong guess. Your guess was lesser than the right guess.");
        }
    }

程序 returns 在 Visual Studio 2015 年出现以下错误:

研究了大约一个小时 Google 如何解决错误,但 none 的解决方案修复了错误。

您需要比较整数而不是字符串(以实现那种比较),将此行更改为:

int rightGuess = 7;

int userGuess = int.Parse(Console.ReadLine());

它会起作用的。当然你可以添加 int.TryParse 并检查输入是否实际上是一个 int

int userGuess;

if(int.TryParse(Console.ReadLine(), out userGuess))
{
    ... do your logic
}
else
{
    Console.WriteLine("Not a number");
}

使用 int.Parse/TryParse 或使用 String.CompareTo().

将字符串转换为数值

您应该使用正确的数据类型进行比较

int rightGuess = 7;
Console.WriteLine("Guess the right number from 1-10: ");
int userGuess;
userGuess = int.Parse(Console.ReadLine());
{
    if (userGuess == rightGuess)
        Console.WriteLine("You guessed right!");
    else if (userGuess > rightGuess)
        Console.WriteLine("Wrong guess. Your guess was greater than the right guess.");
    else (userGuess < rightGuess)
        Console.WriteLine("Wrong guess. Your guess was lesser than the right guess.");
}

当你说 "Mohit" 大于 "Mikex64" 时这样想是否有意义。 没有

但是2大于1才有意义。因此我们可以写成 2 > 1 但不能写成 "Mohit" > "Mikex64" 因此你会得到这个错误信息。

编辑:编辑代码中的 "greater than" 和 "lesser than" 操作数以使其准确,因为我第一次写错了。