【问题标题】:How to slice elements from 2nd item in a c# array?如何从 C# 数组中的第二项中切片元素?
【发布时间】:2020-04-05 15:52:43
【问题描述】:

给定一个一维数组,

double[] arr = { 4, 3, 2, 8, 7, 6, 1 };

我想从第二个索引到最后一个获取值,并且想将数组存储在一个变量中。 想要得到这样的东西:

new_arr = {3, 2, 8, 7, 6, 1 }; //first element sliced

【问题讨论】:

    标签: c# arrays slice


    【解决方案1】:

    您可以使用 C# 8 indices and ranges 功能

    double[] arr = { 4, 3, 2, 8, 7, 6, 1 };
    var slice = arr[1..];
    

    它将返回从索引 1 到数组末尾的所有项目,并为您提供预期的切片 {3, 2, 8, 7, 6, 1 }。同样,它仅适用于 C# 8 和 .NET Core 3.x。

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

    double[] arr = { 4, 3, 2, 8, 7, 6, 1 };
    var slice = arr.Skip(1).ToArray();
    

    【讨论】:

      【解决方案2】:

      如果您使用的是 C# 8,则可以使用 Indices & Range。它是这样的:

      var newArray = oldArray[1..];  // Takes everything from index 1 until the end.
      

      【讨论】:

        【解决方案3】:

        您可以使用 Linq 跳过第一个项目并采取其余的。这将为您提供序列:

        arr.Skip(1);
        

        你可以像这样转换成一个新的数组:

        var new_arr = arr.Skip(1).ToArray();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-11
          • 2020-08-10
          • 2023-01-08
          相关资源
          最近更新 更多