Tags: , | Categories: Programlama Posted by okutbay on 31.10.2007 14:05 | Yorumlar (0)

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 }       

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5