C# 将数组从x复制到y,而不是从x复制到array.length

C# 将数组从x复制到y,而不是从x复制到array.length,c#,arrays,split,C#,Arrays,Split,我曾经尝试过以这样一种方式复制数组:我可以用线程处理数组中的数据,但显然没有将数组分割成更小的块(比如说1个数组->4个四分之一(4个数组)) 唯一可以从指定(int)起点找到副本并从头到尾复制所有前导数据的方法是,如果使用多个线程来处理数据,则会使线程点无效 下面是一段伪代码,展示了我想要做的事情 int array { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } int split1 { 0, 1, 2, 3 } int sp

我曾经尝试过以这样一种方式复制数组:我可以用线程处理数组中的数据,但显然没有将数组分割成更小的块(比如说1个数组->4个四分之一(4个数组))

唯一可以从指定(int)起点找到副本并从头到尾复制所有前导数据的方法是,如果使用多个线程来处理数据,则会使线程点无效

下面是一段伪代码,展示了我想要做的事情

int array { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }
int split1 { 0, 1, 2, 3 }
int split2 { 4, 5, 6, 7 }
int split3 { 8, 9, 10, 11 }
int split4 { 12, 13, 14, 15 }
或者说数组的长度不能被平均分割

int array { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }
int split1 { 0, 1, 2, 3 }
int split2 { 4, 5, 6, 7 }
int split3 { 8, 9, 10, 11 }
int split4 { 12, 13, 14, 15, 16}
唯一可以从指定(int)起点找到副本并从头到尾复制所有前导数据的方法是,如果使用多个线程来处理数据,则会使线程点无效

很遗憾你没有说明那是什么方法。具有用于将数组的一部分复制到另一个数组的各种重载。可能是最有用的:

public static void Copy(
    Array sourceArray,
    int sourceIndex,
    Array destinationArray,
    int destinationIndex,
    int length
)
或者,看一看,它具有基本相同的签名-但是值都是以字节而不是数组索引表示的。它也只适用于基元数组


另一种选择是根本不创建数组的副本——如果每个线程都知道应该使用哪个数组段,那么它可以直接访问该段。您还应该研究(和类似的方法)作为一种在更高级别上轻松并行操作的方法。

啊,这就是我出错的地方,我使用的是variable.copyTo()而不是Array.Copy(),谢谢