在C#中,数组切片(Array Slicing)和子数组(Subarray)是两个不同的概念,它们之间有一些相似之处,但也有明显的区别。
ArraySegment<T>类来实现数组切片。示例:
int[] originalArray = { 1, 2, 3, 4, 5 }; int startIndex = 1; int length = 3; ArraySegment<int> slice = new ArraySegment<int>(originalArray, startIndex, length); foreach (int item in slice) { Console.Write(item + " "); } // 输出:2 3 4 LINQ查询或者手动遍历数组来实现子数组。示例:
int[] originalArray = { 1, 2, 3, 4, 5 }; int[] indices = { 0, 2, 4 }; int[] subarray = originalArray.Where((x, i) => indices.Contains(i)).ToArray(); foreach (int item in subarray) { Console.Write(item + " "); } // 输出:1 3 5 总结:
ArraySegment<T>类实现,子数组可以使用LINQ查询或者手动遍历数组实现。