制作2D数组/集合类的最佳实践
本文关键字:最佳 集合类 2D 数组 制作 | 更新日期: 2023-09-27 18:16:30
我正在开发一个通用库,它将被广泛应用于其他应用程序。你可以说它是一种SDK库。
我需要实现一个2D集合实现。它将是一个泛型模板抽象类。那么制作2D数组或集合的好做法是什么呢?它就像一个网格结构。
这是我为一个1D系列所做的。
public abstract class BaseCollection<T> : Collection<T>
我应该为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>,如果你想公开这些接口的功能级别(你可能不会,如果不了解更多的上下文很难判断)。