2013-02-19 118 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