我正在开发一个将在其他应用程序中广泛使用的通用库。你可以说它是一种SDK库。
我需要实现2D集合实现。它将是一个通用模板抽象类。那么制作2D数组或集合的好方法是什么呢?它就像一个网格结构。
以下是我为1D系列所做的工作。
public abstract class BaseCollection<T> : Collection<T>
我应该怎么做2D收集。 [,]或其他。
答案 0 :(得分:1)
有多种选择,但部分取决于2D集合的实际实现。
如果你只想要一个2D数组,那么就有一个特殊的语法。这是一个2D字符串数组:
string[,] twoDimStringArray = new string[4,5];
另一种选择是列出清单:
List<List<string>> listOfListOfString = new List<List<string>>();
你可能有一个锯齿状的阵列:
string[][] arrayOfArraysOfString = new string[5][];
一般来说,我会阻止你有一个扩展另一个集合类型的类。通常最好封装另一种类型的集合。如果您的类本身作为集合公开,那么请使用适当的各种接口,例如IEnumerable
,ICollection
,IList
,ISet
等。
如果您有一个二维索引列表样式集合,那么如果您希望公开这些接口所具有的功能级别(您,那么您可能将您的类设为IList<IList<T>>
或“ICollection&gt;”可能不会,如果不了解更多的背景,很难说。