我想问如何在不使用 Array.Copy 的情况下对数组进行切片。我会给你一个我想要实现的例子,这样你就可以理解我了。
假设我有这个数组。称为原始
[ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15]
我想从给定长度的起始索引中获取一个副本数组,假设我想要元素 1 到元素 6 我想要代码执行任务,例如
int startIndex = 0;
int lenght= 5;
int[] CopyArray = ArrayFromRange(Original, startIndex, length);
那么 copyArray 将是:
[ 1 | 2 | 3 | 4 | 5] 我不想使用 Array.Copy 因为我会循环它来获取后续切片
所以我会做
int length = 3;
for(int i = 0; i < OriginalArray.Length; i++)
{
int[] CopyArray = ArrayFromRange(OriginalArray, i, length);
// perform some operations
}
每次循环执行它时,这会给我一个包含 4 个元素的数组,然后我会做一些操作。但如果我这样做Array.Copy
了,它会抛出一个OutOfBoundsException
错误,它会尝试复制不存在的数组 [15]。我想避免这些错误。
我正在开发 Winforms,.Net 4.0