如何在 C# 中检查和更改数组中的值?

How to check and change the values in an array in C#?

我正在做一个非常简单的井字游戏项目,我在其中检查用户输入是否在数组中(查找 1 到 9 之间的整数),如果不在,我想将索引更改为该用户输入。下面是代码,不知道我做错了什么。 CallSquare() returns 一个整数。

        int [] numbersPlayed = {0,0,0,0,0,0,0,0,0};
        int callResult;
        int totalPlayed = 0;

        while (totalPlayed != 10)
        {
            
            callResult = CallSquare();
        
            foreach (int i in numbersPlayed)
            {
                if (numbersPlayed.Contains(callResult))
                {
                    Console.WriteLine("\n\nError, number already in array");
                    break;
                }

                else 
                {
                    numbersPlayed.SetValue(callResult, i);
                }
        
            }

            totalPlayed++;
        }

基本上,即使我输入了 1 到 9 之间的整数,它在输入后所做的就是给我上面的错误消息,然后,只更改了我在第一个输入中输入的索引号中的值 (例如,如果我在第一个输入中输入 1,它只会更改后续输入中的第一个索引)。请帮忙?

编辑:我想做的是记录已播放的号码。我认为这样的数组是可行的方法,但如果您有更好的解决方案,我正在倾听。

我认为,你最好使用 List:

List<int> numbersPlayed = new List<int>();
int callResult;
int totalPlayed = 0;

while (totalPlayed < 10)
{
    
    callResult = CallSquare();

    if( numbersPlayed.Contains(callResult) )
    {
         Console.WriteLine("\n\nError, number already in array");
    }
    else
    {
          numbersPlayed.Add(callResult);
    }

    totalPlayed++;
}