我需要组装列表的列表,但整个想法听起来不太漂亮。 这听起来很麻烦。有一些其他的模式来保存列表。列表的味道不好,我的其他选项是什么
我的第一个虽然是使用Arraylist的arrayList。
C#,.NET-2
更多:将被存储然后数量的项目是小,但总是在变化。
注: 我就这个问题使用的ArrayList的修正:
What's wrong with using an ArrayList in .net-2.0
我需要组装列表的列表,但整个想法听起来不太漂亮。 这听起来很麻烦。有一些其他的模式来保存列表。列表的味道不好,我的其他选项是什么
我的第一个虽然是使用Arraylist的arrayList。
C#,.NET-2
更多:将被存储然后数量的项目是小,但总是在变化。
注: 我就这个问题使用的ArrayList的修正:
What's wrong with using an ArrayList in .net-2.0
没有问题。我已经使用过它,它适合我当时需要的东西。该模式是列表的列表。 :)
列表清单本身不是一种难闻的气味。如果您的列表全部大小相同,则可能需要使用二维数组,例如int[2,2]
,但是如果列表的长度不同,那么列表的列表是正确的路线,而不是正式编码一个衣衫褴褛的二维数组的类。
您也可以直接在C#中使用锯齿形数组 - 不需要“为破损的2D数组正式编码类” - 已经在C# 。 – 2010-07-24 19:46:23
如何使用在自定义类中创建的对象?
例如,客户可以有多个地址。创建一个具有Address属性的Customer对象。然后,您可以拥有一个客户的集合(数组,ArrayList等),并且每个客户都可以拥有一组地址。
这适合多种信息,如产品类别中的产品,部门中的员工。
这样处理层次关系更容易进行编码。
你可以,但最好把它包装到一个具有明确定义的公共方法的类中。
您当然可以使用泛型列表或非泛型变体ArrayList来做到这一点。
List<List<string>> listOfLists = new List<List<string>>();
listOfLists.Add(new List<string>());
listOfLists.Add(new List<string>());
ArrayList stringListOfStringLists = new ArrayList();
stringListOfStringLists.Add(new ArrayList());
stringListOfStringLists.Add(new ArrayList());
-1提到ArrayList是一个选项。经验法则,从来没有使用ArrayList。 – tster 2010-07-24 19:23:56
为什么不呢? ArrayList有什么问题? – 2010-07-24 19:30:42
@约翰Kugelman - 类型安全,拳击和拆箱费用,即表现 – 2010-07-24 19:40:38
从不使用ArrayList。 – tster 2010-07-24 19:24:16
我以前见过那条评论。数组列表有什么问题 – fishhead 2010-07-24 19:25:53
缺少类型安全。 – recursive 2010-07-24 19:49:30