2013-05-16 198 views
-6

我想要一个属于某些对象的其他对象的列表。 是否有可能像这样创建一个列表?列表和对象列表

List<Object, List<OtherObject>> 

或者我应该创建一个新的类吗?

List<NewClass> 

或者我应该做一些其他的整体吗?大小是动态的,所以我不想使用数组。

我该如何做到这一点?

+4

什么是你想实现什么? –

+0

列表只需要模板中的一个参数:http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx – Kasyx

+0

@AlcariTheMad我不明白为什么我必须回答这样的问题。但是如果你真的想知道,我想要一个'OtherObject'列表,它们都属于某个'Object's。那不是一个奇怪的问题吗?就像我想要我的小组中每个孩子想要的零食清单... – Joetjah

回答

4

你想要一个词典<>,例如

Dictionary<Object, List<OtherObject>> 

哪里Object是关键,List<OtherObject>是价值

+0

带对象键的Dictionary类通常不是一个好主意。唯一需要的Dictionary行为是IEnumerable >接口,因此KeyValuePair的List应该足够了。 – Ayaro

+0

将对象存储为字典中的键是个好主意。只为Knowlegde如何字典将知道任何重复的密钥 –

0

尝试使用

Dictionary<Object, List<OtherObject>>

希望我帮助

+2

这个答案downvote是不合理的。 –

+1

是的,你真的通过从DaveDev复制答案!!! –

+0

对不起。 。我会删除这条评论。 。我没有复制答案。它只是我的互联网连接速度缓慢。立即刷新.didnt。我很抱歉 –

1

您可以使用Tuple<Object, List<OtherObject>>达到你想要的东西。

元组是指当您不想创建特殊类时的属性组合。如果需要,您可以使用Tuple<Object, AnotherObject, AnotherAnotherObject>

您的代码将是这样的:

List<Tuple<Object, List<OtherObject>>> list; 

,并与它的工作:

foreach(var tuple in list) 
{ 
    var object = tuple.Item1; 
    var innerList = tuple.Item2; 
}