C#如何在if语句中比较多个数组值(字符串)?

时间:2017-10-04 23:06:01

标签: c# arrays compare

我正在使用数组制作一个井字游戏。如果有人获胜,我必须检查是否有胜利组合。 这是我的电路板阵列

string[] board = new string[9] { " ", " ", " ", " ", " ", " " , " ", " ", " " };

首先,董事会是空的。然后两名球员开始放置'X'和'O'。 但是,我无法比较,例如,第一行是否充满'X'。 以下代码由于某种原因不起作用。我不知道为什么?

board[0].Equals(board[1]).Equals(board[2]).Equals("X")

我也试过了board[0]==board[1]==board[2]=="X"

以下是完整的if语句(这些是获胜组合):

if (table[0].Equals(table[1]).Equals(table[2]).Equals("X") || table[3].Equals(table[4]).Equals(table[5]).Equals("X") || table[6].Equals(table[7]).Equals(table[8]).Equals("X") ||
            table[0].Equals(table[3]).Equals(table[6]).Equals("X") || table[1].Equals(table[4]).Equals(table[7]).Equals("X") || table[2].Equals(table[5]).Equals(table[8]).Equals("X") ||
            table[0].Equals(table[4]).Equals(table[8]).Equals("X") || table[7].Equals(table[4]).Equals(table[3]).Equals("X"))
        {
            return true;
        }

2 个答案:

答案 0 :(得分:1)

在c#中,您无法使用

if (a == b == c)

相反,你必须明确:

if (a == b && b == c)

所以而不是

board[0].Equals(board[1]).Equals(board[2]).Equals("X")

你必须写

board[0] == "X" && board[1] == "X" && board[2] == "X"

答案 1 :(得分:0)

board[0].Equals(board[1]).Equals(board[2]).Equals("X")更改为String.Equals(board[0], board[1]) && String.Equals(board[1], board[2]) && String.Equals(board[2], "X")

此处' s documentation on comparing strings位于c#。