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