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

本文关键字:最佳 集合类 2D 数组 制作 | 更新日期: 2023-09-27 18:16:30

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

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

这是我为一个1D系列所做的。

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

我应该为2D收集做些什么?[,]或者别的什么

制作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>,如果你想公开这些接口的功能级别(你可能不会,如果不了解更多的上下文很难判断)。