在我的项目中,我使用了非常复杂(和嵌套)的集合:
List<Pair<List<Pair<double>>, double>> myCollection
由于我在项目中的几个地方以相同的方式使用它,所以我想将它转换为新类。但我有些怀疑…
处理此类集合、创建内部字段并将其作为仅公开的选定项传递的最佳方法是:
public class MyComplicatedCollection
{
private List<Pair<List<Pair<double>>, double>> myInnerCollection = null;
// Here come some constructors, data accessors etc... only to those elements which I would like to pass as public.
}
或者以另一种方式,通过派生原始集合:
public class MyComplicatedCollection : List<Pair<List<Pair<double>>, double>>
{
// Here come some constructors,
// Most of the data accessors are given "out of the box"
}
第二条路似乎更容易,但不像第一条路那么安全。另一件事是性能-这些集合非常大,我需要相当快的访问它-这是至关重要的。
第二个问题:如果第二种方法更好…为了
List
当您可以通过传递任何
ICollection
. 有没有简单的方法为我的类创建这样的构造函数,或者我需要逐个元素填充我的collection元素(或者使用
AddRange
方法?