没有内存分配的C#子数组(复制)

时间:2016-12-28 10:25:01

标签: c# arrays

在没有内存分配/复制的情况下,C#是否可以在现有数组之上创建临时子数组?

1 个答案:

答案 0 :(得分:1)

您可以使用ArraySegment结构:

  

划分一维数组的一部分。

还要看一下这个问题:what is the use of ArraySegment class?

以下是斯蒂芬·肯尼迪回答的一个示例用法:

var array = new byte[] { 5, 8, 9, 20, 70, 44, 2, 4 };
array.Dump();
var segment = new ArraySegment<byte>(array, 2, 3);
segment.Dump(); // output: 9, 20, 70
segment.Reverse().Dump(); // output 70, 20, 9
segment.Any(s => s == 99).Dump(); // output false
segment.First().Dump(); // output 9
array.Dump(); // no change