C# 强制转换数组对象

C# 强制转换数组对象,c#,.net,arrays,C#,.net,Arrays,我的要求是克隆一个数组对象。这是我使用的代码类型: Array numbers = Array.CreateInstance(typeof(int), 10); index = 0; foreach (int x in numbers) { numbers.SetValue(index * index, index); index++; } 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();

现在,如何将
对象
numberClone转换为整数的
数组

如果您使用的是.net 3.5,这可能会对您有所帮助

object[] objarr = new object[] {1,2,3 };
 int[] arr= objarr.Cast<int>().ToArray();
object[]objarr=新对象[]{1,2,3};
int[]arr=objarr.Cast().ToArray();
objectnumberclone=numbers.Clone();
var arr=作为数组的数字克隆;
var listOfInt=arr.OfType().Select(c=>c.ToArray();

为什么不在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

乍一看,你试过这个:int[]arrayOfInt=(int[])numberClone?为什么不直接使用ArrayList?Array numberClone=(Array)numbers.Clone();试过吗?@bytefire,我就是这么做的!谢谢<代码>数组numberClone=(int[])numberClone工作!那么您在编译时已经知道这是一个
int[]
?那么为什么要使用
CreateInstance
而不是这样的东西:
var newNums=newlist(number);int[]newNumArray=newNums.ToArray()
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();
int[] numbers = new int[10]();
int[] numberClone = new int[10]();

foreach(var x in numbers)
{
nubmers[index*index] = index;
numberClone[index*index] = index;
}
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();