如何从c#数组中的第二项中切片元素?

如何从c#数组中的第二项中切片元素?,c#,arrays,slice,C#,Arrays,Slice,给定一个一维数组 double[] arr = { 4, 3, 2, 8, 7, 6, 1 }; 我想从第二个索引到最后一个索引获取值,并想将数组存储在一个变量中。 想要得到这样的东西: new_arr = {3, 2, 8, 7, 6, 1 }; //first element sliced var newArray = oldArray[1..]; // Takes everything from index 1 until the end. var new_arr = arr.Sk

给定一个一维数组

double[] arr = { 4, 3, 2, 8, 7, 6, 1 };
我想从第二个索引到最后一个索引获取值,并想将数组存储在一个变量中。 想要得到这样的东西:

new_arr = {3, 2, 8, 7, 6, 1 }; //first element sliced
var newArray = oldArray[1..];  // Takes everything from index 1 until the end.
var new_arr = arr.Skip(1).ToArray();
您可以使用C#8功能

double[]arr={4,3,2,8,7,6,1};
var切片=arr[1..];
它将返回从索引1到数组末尾的所有项,并给您一个期望的片段
{3,2,8,7,6,1}
。同样,它只适用于C#8和.NETCore3.x

对于C#的最早版本,您应该自己执行此操作,例如使用
Array.Copy
System.Linq

double[]arr={4,3,2,8,7,6,1};
var slice=arr.Skip(1.ToArray();
如果您使用的是C#8,则可以使用。事情是这样的:

new_arr = {3, 2, 8, 7, 6, 1 }; //first element sliced
var newArray = oldArray[1..];  // Takes everything from index 1 until the end.
var new_arr = arr.Skip(1).ToArray();

您可以使用Linq跳过第一个项目,然后使用其他项目。这将为您提供以下顺序:

arr.Skip(1);
可以将其转换为如下所示的新阵列:

new_arr = {3, 2, 8, 7, 6, 1 }; //first element sliced
var newArray = oldArray[1..];  // Takes everything from index 1 until the end.
var new_arr = arr.Skip(1).ToArray();