我想将一个数组的一部分拉出来进行操作。
e.g。从包含50个项目的数组中,我想在新数组中返回项目12到22
我目前正在使用LINQ,我假设它很慢:
return fullArray.Skip(12).Take(22).ToArray();
有更快的方法吗?
答案 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);