制作2D数组/集合类的最佳实践

时间:2013-06-03 13:37:46

标签: c# arrays collections 2d

我正在开发一个将在其他应用程序中广泛使用的通用库。你可以说它是一种SDK库。

我需要实现2D集合实现。它将是一个通用模板抽象类。那么制作2D数组或集合的好方法是什么呢?它就像一个网格结构。

以下是我为1D系列所做的工作。

public abstract class BaseCollection<T> : Collection<T>

我应该怎么做2D收集。 [,]或其他。

1 个答案:

答案 0 :(得分:1)

有多种选择,但部分取决于2D集合的实际实现。

如果你只想要一个2D数组,那么就有一个特殊的语法。这是一个2D字符串数组:

string[,] twoDimStringArray = new string[4,5];

另一种选择是列出清单:

List<List<string>> listOfListOfString = new List<List<string>>();

你可能有一个锯齿状的阵列:

string[][] arrayOfArraysOfString = new string[5][];

一般来说,我会阻止你有一个扩展另一个集合类型的类。通常最好封装另一种类型的集合。如果您的类本身作为集合公开,那么请使用适当的各种接口,例如IEnumerableICollectionIListISet等。

如果您有一个二维索引列表样式集合,那么如果您希望公开这些接口所具有的功能级别(您,那么您可能将您的类设为IList<IList<T>>或“ICollection&gt;”可能不会,如果不了解更多的背景,很难说。