2013-02-19 51 views
0

我的要求是Clone陣列Object。這是我使用的代碼類型:投射陣列物體

 Array numbers = Array.CreateInstance(typeof(int), 10); 
     index = 0; 
     foreach (int x in numbers) 
     { 
      numbers.SetValue(index * index, index); 
      index++; 
     } 
     Object numberClone = numbers.Clone(); 

現在,我怎麼投的Object numberClone到intergers的Array

+0

乍一看,你嘗試過這樣的:INT [] arrayOfInt =(INT [])numberClone; ? – bytefire 2013-02-19 09:12:26

+0

爲什麼不只是使用ArrayList? – Madman 2013-02-19 09:13:36

+0

Array numberClone =(Array)numbers.Clone();試過這個? – scheien 2013-02-19 09:14:13

回答

2
Array numbers = Array.CreateInstance(typeof(int), 10); 
int index = 0; 
foreach (int x in numbers) 
{ 
    numbers.SetValue(index * index, index); 
    index++; 
} 
Array numberClone = (Array)numbers.Clone(); 
0

,如果你使用的是.NET 3.5,這可能幫助你

object[] objarr = new object[] {1,2,3 }; 
int[] arr= objarr.Cast<int>().ToArray(); 
0
Array numbers = Array.CreateInstance(typeof(int), 10); 
      int index = 0; 
      foreach (int x in numbers) 
      { 
       numbers.SetValue(index * index, index); 
       index++; 
      } 
      Object numberClone = numbers.Clone(); 

      Array castNumbers = (Array)numberClone; 

      foreach(int x in castNumbers) 
      { 

       Console.WriteLine(x); 
      } 
0
Object numberClone = numbers.Clone(); 
var arr = numberClone as Array; 
var listOfInt = arr.OfType<int>().Select(c => c).ToArray(); 
0

爲什麼不設置在foreach相同的值?

這樣

int[] numbers = new int[10](); 
int[] numberClone = new int[10](); 

foreach(var x in numbers) 
{ 
nubmers[index*index] = index; 
numberClone[index*index] = index; 
} 

像這樣的事情我這樣做沒有VS很抱歉,如果它的錯誤:P