正在清除新条目的数组值

本文关键字:数组 新条目 清除 | 更新日期: 2023-09-27 18:28:50

我的问题是,如果用户决定输入更多的保龄球分数,我如何重新编写此代码,以便数组能够自行清除?

while (!userIsDone)// loop will continue as long as the userIsDone = false
            {
                Console.Write("'nWould you like to process another set of bowling scores?");// prompt user to input Y or N to quit or to
                Console.WriteLine("'nPress 'Y' to process another set or 'N' to exit the program");// input new bowling scores
                string userInput = Console.ReadLine();// reads the user input to check against if/else below

                if (userInput == "N")// if userInput is literal N the program will exectute this block
                {
                    userIsDone = true;//exits program by setting userIsDone to true
                }
                else if (userInput == "Y")//if the user inputs a literal Y this block will execute
                {
                    Console.Clear();// clears the console
                    break;// jumps out of the loop and returns to the prompt to input scores
                }
                else
                {
                    // left blank to end the if and return to beginning of while because userInput was not Y or N  
                }

            }//end while
            //end do while
        } while (!userIsDone);// continues to loop until userIsDone is true                 
    }
}

}

编辑:很抱歉没有把我到目前为止所做的放进去,我一直在修改Array。很清楚,但我想知道是否有其他方法可以在不使用内置方法的情况下清除它。

正在清除新条目的数组值

有几种方法:

Array.Clear(MSDN),它将把所有数组元素设置为默认值。

你可以编写自己版本的这种方法:

void ClearArray<T>(T[] array)
{
    for (int i = 0; i < array.Length; i++)
        array[i] = default(T);
}

尽管现实地说,我认为使用它与预先存在的方法相比没有任何价值。您也可以只制作一个新的数组;尽管这是非常低效的,因为您必须为新数组分配内存,而旧数组则保留在内存中,直到垃圾收集器将其清理干净。

scores = new int[10];

每种方法都能让你到达同一个地方,但我只想使用Array.Clear