2009-05-19 26 views
5

nasıl dinamik olarak C# bir dizi oluşturabilir C# bir Array oluşturun?Dinamik

+3

? Lütfen ne denediğinizin sözde kodunu gösteriniz. – shahkalpesh

+1

Eğer dizi yeniden boyutlandırmak gerekir anlamına musunuz? – blitzkriegz

cevap

1

Ayrıca sadece diğer nesne türleriyle gibi new operatörünü kullanabilirsiniz

int[] array = new int[someLength]; 
+7

Bu oldukça dinamik değil mi? –

+0

Neden olmasın? Orada bir değişmez 5 yerine bir değişken kullanabilirsiniz. –

+0

bir kez tanımlandığında, 5'den fazla öğe eklemek için diziyi yeniden başlatmanız gerekecek – Natrium

8

İlk bir arraylist olun. Öğe ekle/kaldır. Sonra ArrayList.ToArray()

Ve dizi var!

3
object foo = Array.CreateInstance(typeof(byte), length); 
21

Ben jenerik koleksiyonları da bu .ToArray() yöntemini destekleyen Sodyum cevabı eklemek istiyorum. Bir değişken ile,

int[] array = new int[5]; 

ya:

List<string> stringList = new List<string>(); 
stringList.Add("1"); 
stringList.Add("2"); 
stringList.Add("3"); 
string[] stringArray = stringList.ToArray(); 
+1

Bir not olarak, onlar ToArray() destekleyen dahili, liste sadece düz bir iletmenin dizisi kullanarak ve gerektiğinde yeni tahsis ile büyüyor çünkü. –

4

Ok bu yüzden dizi başlatma beni her seferinde alır. bu yüzden bunu yapmak için 10 dakika sürdüm.

static void Main(string[] args) 
    { 
     String[] as1 = new String[] { "Static", "with", "initializer" }; 
     ShowArray("as1", as1); 

     String[] as2 = new String[5]; 
     as2[0] = "Static"; 
     as2[2] = "with"; 
     as2[3] = "initial"; 
     as2[4] = "size"; 
     ShowArray("as2", as2); 

     ArrayList al3 = new ArrayList(); 
     al3.Add("Dynamic"); 
     al3.Add("using"); 
     al3.Add("ArrayList"); 
     //wow! this is harder than it should be 
     String[] as3 = (String[])al3.ToArray(typeof(string)); 
     ShowArray("as3", as3); 

     List<string> gl4 = new List<string>(); 
     gl4.Add("Dynamic"); 
     gl4.Add("using"); 
     gl4.Add("generic"); 
     gl4.Add("list"); 
     //ahhhhhh generic lubberlyness :) 
     String[] as4 = gl4.ToArray(); 
     ShowArray("as4", as4); 
    } 

    private static void ShowArray(string msg, string[] x) 
    { 
     Console.WriteLine(msg); 
     for(int i=0;i<x.Length;i++) 
     { 
      Console.WriteLine("item({0})={1}",i,x[i]); 
     } 
    } 
-1
int[] array = { 1, 2, 3, 4, 5}; 

for (int i=0;i<=array.Length-1 ;i++) { 
    Console.WriteLine(array[i]); 
} 
Bununla ne demek istiyorsunuz