Dizileri boyutlarını dinamik olarak değiştirek bir metod yoktur. Ama aşağıdakine benzer bir metod ile bu ihtiyacınızı karşılayabilirsiniz. Mantık basit. Yeni boyutta bir dizi oluştur, eski dizi içeriğini buraya aktar…
Basit bir konsol uygulamasında örnek vermek gerekirse.
1 public static System.Array ResizeArray(System.Array oldArray, int newSize)
2 {
3 int oldSize = oldArray.Length;
4 System.Type elementType = oldArray.GetType().GetElementType();
5 System.Array newArray = System.Array.CreateInstance(elementType, newSize);
6 int preserveLength = System.Math.Min(oldSize, newSize);
7 if (preserveLength > 0)
8 System.Array.Copy(oldArray, newArray, preserveLength);
9 return newArray;
10 }
11
12 // Test for ResizeArray().
13 public static void Main()
14 {
15 int[] a = { 1, 2, 3 };
16 a = (int[])ResizeArray(a, 5);
17 a[3] = 4;
18 a[4] = 5;
19 for (int i = 0; i < a.Length; i++)
20 System.Console.WriteLine(a[i]);
21 }