短い答えは、これを行う組み込みの方法がないということです。フレームワークは、配列の初期状態を自動的に追跡するのではなく、現在の状態のみを追跡するため、元の状態に再初期化する方法を知る方法がありません。ただし、手動で行うこともできます。これに対する正確なアプローチは、配列が最初に初期化されたものによって異なります。
// Array will obviously contain {1, 2, 3}
int[] someRandomArray = { 1, 2, 3 };
// Won't compile
someRandomArray = { 1, 2, 3 };
// We can build a completely new array with the initial values
someRandomArray = new int[] { 1, 2, 3 };
// We could also write a generic extension method to restore everything to its default value
someRandomArray.ResetArray();
// Will be an array of length 3 where all values are 0 (the default value for the int type)
someRandomArray = new int[3];
ResetArray 拡張メソッドは以下のとおりです。
// The <T> is to make T a generic type
public static void ResetArray<T>(this T[] array)
{
for (int i = 0; i < array.Length; i++)
{
// default(T) will return the default value for whatever type T is
// For example, if T is an int, default(T) would return 0
array[i] = default(T);
}
}