我不知道是否有可能创建不同类型的二维List
。换句话说,我不知道这样的事情是可能的:不同类型的二维列表
List<T, U> list = new List<T, U>();
其中T
和U
任何两种不同类型。
是否有可能实现这一点,而不诉诸于struct
s或class
es?
我不知道是否有可能创建不同类型的二维List
。换句话说,我不知道这样的事情是可能的:不同类型的二维列表
List<T, U> list = new List<T, U>();
其中T
和U
任何两种不同类型。
是否有可能实现这一点,而不诉诸于struct
s或class
es?
这听起来像你对我正在寻找的是一个Dictionary<T,V>
:
var dictionary = new Dictionary<int, string>();
dictionary[3] = "three";
dictionary[7] = "seven";
foreach(var keyValuePair in dictionary)
{
Console.WriteLine("{0}: {1}", keyValuePair.Key, keyValuePair.Value);
}
// 3: three
// 7: seven
第一种方法:继承。但你可以去创建一个List<Object>
。对象不关心你在那里扔什么。但是限制到两个类别,不,这是不可能的。
这在很多层面上都是一个坏主意。他可以放置任何物品,但是如果不投射它,他将无法访问任何物品。对于任何两值的“对象”,您需要一个类或一个结构,所以不妨继续创建一个类(这是问题不要做的)。无论如何,如果你想要一个对象列表,不妨使用旧的'ArrayList',但建议不要这样做。 –
我知道,但它确实有效。但看到其他答案,我可能会误解这个问题。 –
你可以做这样的事情,但我不知道这是否是你所需要的:
List<Tuple<int, string>> list = new List<Tuple<int, string>>();
list.Add(Tuple.Create<int, string>(2, "two"));
如果OP需要能够将整数映射到多个字符串,这是一个很好的解决方案。一个'Dictionary'每个键需要一个值。 –
@ p.s.w.g我不同意这一点。你可以简单地使用一个'Dictionary
@SimonBelanger当然可以。这也是我的愿望。我说这是一个很好的解决方案,并不是它很理想。 –
你想用这个完成什么? –
你想要得到像Dictionary一样的东西吗?或者,请再解释一下自己? – Styxxy
我想保留一个索引列表,并分别为'int'和'string'类型的值。 – Raptor