【发布时间】:2019-10-10 20:33:39
【问题描述】:
随着 C# 8.0 引入了结构体 Index 和 Range,我们现在可以轻松获得数组的切片,执行类似的操作
string[] baseArray = {"a","b", "c", "d", "e", "f"};
var arr = baseArray[1..^2];
像这样对数组进行切片会复制数组吗?或者它没有像ArraySegment<T>那样复制吗?
【问题讨论】:
-
你的测试不是真的有效。您所做的只是创建结构,而不是使用它们。例如,Linq 版本只返回一个
IEnumerable,但实际上并没有做任何事情。 -
@DavidG 好的,感谢您指出这一点。删除了我的测试用例。然而,原来的问题仍然存在,它是否复制了数组?
标签: c# arrays performance c#-8.0