具有通用值的KeyValuePair

时间:2012-08-05 09:41:29

标签: c# generics

有没有办法以这种方式创建列表?

List<string,KeyValuePair<string,T>> lst;

2 个答案:

答案 0 :(得分:4)

首先,List<T>只接受一个通用参数,因此您无法指定 string KeyValuePair<string, T>。正如所指出的,也许你的意思是Dictionary<K, V>

通常,具有T参数的代码只有在通用方法或类本身接受名为T的类型参数的类中才有可能。

如果您希望能够在列表中存储不同的元素(即T的各种类型);这是不可能的。想象一下,如果每个项目都有不同的T,那么T首先输入的优势是什么?您无法对值进行任何假设,因为它们的类型将是未知的。因此,您所能做的就是指定您的值可能属于的所有类型的最具体的公共基类型 - 可能是System.Object,如果它们实际上不共享任何其他共同特征。

答案 1 :(得分:1)

也许:

Dictionary<String, Dictionary<String, T>> lst;