在C#中,數(shù)組切片(Array Slicing)和子數(shù)組(Subarray)是兩個(gè)不同的概念,它們之間有一些相似之處,但也有明顯的區(qū)別。
ArraySegment<T>
類來實(shí)現(xiàn)數(shù)組切片。示例:
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
查詢或者手動(dòng)遍歷數(shù)組來實(shí)現(xiàn)子數(shù)組。示例:
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
總結(jié):
ArraySegment<T>
類實(shí)現(xiàn),子數(shù)組可以使用LINQ
查詢或者手動(dòng)遍歷數(shù)組實(shí)現(xiàn)。