正在清除新条目的数组值
本文关键字:数组 新条目 清除 | 更新日期: 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
。