2

I am working on a general library which is going to be widely used in other applications. You can say that it is a kind of SDK library.

I need to implement a 2D collection implementation. It is going to be a generic template abstract class. So what are good practices for making a 2D array or collection. It is like a grid structure.

Here is what I have done for a 1D collection.

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

What should I do for 2D collection. [,] or something else.

4

1 回答 1

1

有许多选项,但部分取决于 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>>,那么如果您想公开这些接口的功能级别,那么您可以让您的类是一个了解更多上下文)。

于 2013-06-03T14:26:31.690 回答