从数组中读取数组

时间:2013-09-13 10:41:07

标签: c# arrays

我想将一个数组的一部分拉出来进行操作。

e.g。从包含50个项目的数组中,我想在新数组中返回项目12到22

我目前正在使用LINQ,我假设它很慢:

return fullArray.Skip(12).Take(22).ToArray();

有更快的方法吗?

2 个答案:

答案 0 :(得分:6)

Array.Copy方法比Linq快得多(我之前测试过它,速度快了2或3个数量级!)

var sourceArray = object[50];
var newArray = object[10];
// Copy 10 elements, starting at index 12, to newArray (starting at index 0)
Array.Copy(sourceArray, 12, newArray, 0, 10);

答案 1 :(得分:0)

您可以使用Array.Copy Method (Array, Int32, Array, Int32, Int32)方法;

  

从指定的范围开始复制Array中的一系列元素   源索引并将它们粘贴到另一个数组开始   指定的目标索引。指定长度和索引   作为32位整数。

例如;

int[] array1 = new int[50];
int[] array2 = new int[10];
Array.Copy(array1, 12, array2, array2.GetLowerBound(0), 10);