【发布时间】:2013-06-03 13:37:45
【问题描述】:
我正在开发一个将在其他应用程序中广泛使用的通用库。可以说是一种SDK库。
我需要实现一个 2D 集合实现。它将是一个通用模板抽象类。那么制作二维数组或集合的好做法是什么。它就像一个网格结构。
这是我为一维集合所做的。
public abstract class BaseCollection<T> : Collection<T>
我应该为 2D 收藏做什么。 [,] 或其他。
【问题讨论】:
-
如果它是一个 2D 集合,那么我认为你不应该从 1D 基类派生(因为你会得到像 Add 这样的无意义的方法)。实现您自己的集合,然后添加有意义的接口实现(例如 IEnumerable
如果顺序扫描有意义)。这并不意味着您不能在后台使用它们,但您的用户应该会看到(如果他们调用 RemoveAt(123),您将删除哪个元素?)
标签: c# arrays collections 2d