How do I clone a range of array elements to a new array?

前端 未结 25 972
北海茫月
北海茫月 2020-11-22 16:07

I have an array X of 10 elements. I would like to create a new array containing all the elements from X that begin at index 3 and ends in index 7. Sure I can easily write a

25条回答
  •  南笙
    南笙 (楼主)
    2020-11-22 16:33

    This is the optimal way, I found, to do this:

    private void GetSubArrayThroughArraySegment() {
      int[] array = { 10, 20, 30 };
      ArraySegment segment = new ArraySegment(array,  1, 2);
      Console.WriteLine("-- Array --");
      int[] original = segment.Array;
      foreach (int value in original)
      {
        Console.WriteLine(value);
      }
      Console.WriteLine("-- Offset --");
      Console.WriteLine(segment.Offset);
      Console.WriteLine("-- Count --");
      Console.WriteLine(segment.Count);
    
      Console.WriteLine("-- Range --");
      for (int i = segment.Offset; i <= segment.Count; i++)
      {
        Console.WriteLine(segment.Array[i]);
      }
    }
    

    Hope It Helps!

提交回复
热议问题