【发布时间】:2012-01-16 22:20:46
【问题描述】:
给我一个类型的 3D 地图,其长度和宽度是统一的,但深度是锯齿状的:
public class Map<T>
{
T[,][] map;
...
}
返回一个一维数组的最佳方法是返回存在于由二维区域定义的体积内的所有类型对象以及该区域内的所有深度。例如,我可能有一个数组符号覆盖,如下所示:
public IEnumerable<T> this[Rectangle area]
{
get {...}
}
或者只是
public IEnumerable<T> this[int x, int y, int width, int length]
{
get {...}
}
我真诚地希望有一个快速的 LINQ 解决方案,但性能优于该解决方案的视觉优雅。返回的展平数组中对象的顺序并不重要。如果有人对此有任何建议或经验,请分享您的智慧。
或者,如果我可以使用另一个数据结构来执行我不知道的相同功能,我会很乐意使用它。
如果我的问题不清楚,请询问更多详情。
【问题讨论】:
标签: c# .net arrays data-structures multidimensional-array