0

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

例如,从包含 50 个项目的数组中,我想在一个新数组中返回项目 12 到 22

我目前正在使用 LINQ,我认为它很慢:

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

有更快的方法吗?

4

2 回答 2

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);
于 2013-09-13T10:42:18.880 回答
0

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

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

例如;

int[] array1 = new int[50];
int[] array2 = new int[10];
Array.Copy(array1, 12, array2, array2.GetLowerBound(0), 10);
于 2013-09-13T10:43:51.730 回答