【发布时间】:2013-03-20 16:48:24
【问题描述】:
我有一个包含很多列表的类:
private List<MyClass> m_List1;
private List<MyClass> m_List2;
private List<MyClass> m_List3;
private List<MyClass> m_List4;
...
private List<MyClass> m_ListN;
一切都很好,但是代码在某种程度上变得难以阅读和编写......尤其是当我需要在需要时实例化这些列表或将它们全部清除时。
你能建议我一个好的和优雅的解决方案来更好地管理它们吗?我正在考虑一个Dictionary<String, List<MyClass>>,它可以充当我所有列表的一种“包装器”,或者更好的是,一个具有内部Dictionary<String, List<MyClass>> 的类,它公开了一个方法ClearAll(),例如......
这种情况下,我应该如何处理列表替换、清理、处置等?假设我的包装器中有以下代码...
public void Assign(String key, List<MyClass> value)
{
m_InternalDictionary[key] = value;
}
如果该键上已经存在另一个列表,我应该先清除它,然后再用另一个列表替换它吗?
还有什么建议吗?
【问题讨论】:
-
列表数组怎么样?
List<MyClass> [] m_Lists? -
Dictionary<string, List<MyClass>>或者,由于字段名称相差一个数字,即使是List<List<MyClass>>似乎也是可行的方法。 -
List<List<MyClass>> m_Lists;有什么问题?您如何使用这些列表以及您希望包装器提供哪些功能? -
我支持 Dictionary 的想法,因为他可能想对特定列表做一些事情,并且使用它更容易到达
myDictionary["m_List1"]。 -
(一般来说,当你有“很多相同类型的X”时,你应该立即想到一个集合。)
标签: c# .net list collections dictionary