我需要类似以下的东西:
Dictionary<string, List<int>, List<DateTime>> =
new Dictionary<string, List<int>, List<DateTime>>()
C#中有没有内置的类提供类似上面的内容?
编辑:对于那些无法理解为什么这样的事情可能有用的人来说......
想象一下,如果你能写出这样的东西:
mySuperDictionary SuperDictionary<string, List<int>X, List<int>Y> .....
myXvalues = mySuperDictionary["myKey"].X;
myYvalues = mySuperDictionary["myKey"].Y;
我个人认为这将是一个非常整洁。
答案 0 :(得分:26)
没有
自己创建一对或元组类型。
类似的东西:
class Pair<T,V>
{
T First{get; set;}
V Second{get; set;}
}
然后您可以声明Dictionary<string, Pair<List<int>, List<DateTime>>
。
答案 1 :(得分:9)
我不相信。我认为如果你制作一个自定义对象来保存List<int>
和List<DateTime>
对象会更好。
Dictionary<string, CustomClass>> = new Dictionary<string, CustomClass>();
public class CustomClass
{
public List<int> IntegerList { get; set; }
public List<DateTime> DateTimeList { get; set; }
}
答案 2 :(得分:5)
通常情况下,您只需:
Dictionary<string, KeyValuePair<List<int>,List<DateTime>>> dictionary;
然而,对于这种类型的东西,自定义类更好。 Dictionary<Key, Value, Value>
并没有真正添加任何价值 - 它仍然只是一个键 - &gt; 某些查找,所以只需让你的值处理它。
答案 3 :(得分:0)
没有内置课程作为您的要求,但您可以创建自己的。
答案 4 :(得分:0)
不,你必须自己动手。这可以通过简单的结构或类轻松完成。 This answer has good information on how to do something like this using tuples.
答案 5 :(得分:0)
我认为有一个通用的对&lt;&gt;框架中的类,可用于将两个“值”相互关联。
答案 6 :(得分:0)
强类型数据表可以生成所需的相同数据(和结构)。见下文。