C# 8.0 对多维数组使用 Range

标签 c# multidimensional-array range

在 C# 8.0 中,为什么我可以在一维数组上使用 range:

var oneDim = new int[5];
var oneDimSlice = oneDim[2..4];

但是不能在多维数组上使用它?
var twoDim = new int[5, 5];
var twoDimSlice = twoDim[2..4, 2..4];

最佳答案

https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/ranges-indexes

Array has more nuanced behavior. Single dimension arrays support both indices and ranges. Multi-dimensional arrays don't. The indexer for a multi-dimensional array has multiple parameters, not a single parameter. Jagged arrays, also referred to as an array of arrays, support both ranges and indexers.



所以答案是否定的,但如果您有兴趣,可以使用锯齿状数组来完成。

关于C# 8.0 对多维数组使用 Range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55065816/

相关文章:

C#:显式声明 "unsafe"/编译器选项的好处

Javascript 将数组项推送到命名索引

javascript - 在javascript或jquery中动态添加多维数组

multidimensional-array - 如何在不复制的情况下将 ndarray::ArrayView 转换为 &ndarray::Array?

Matlab:从一定范围内不重复的随机整数

r - 按日期范围连接表

c# - 是否可以在 DirectShow .Net 中使用 http url 作为源过滤器的源位置?

C# redis vs mongodb 性能

mysql - 检查 MySQL 中日期范围的重叠

c# - 绑定(bind)到一个模型属性的多个表单元素