C#中有<key,value,=“”value =“”>字典类型?</key,>

时间:2010-01-05 17:31:33

标签: c# .net

我需要类似以下的东西:

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;

我个人认为这将是一个非常整洁。

7 个答案:

答案 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)

强类型数据表可以生成所需的相同数据(和结构)。见下文。

http://www.codeproject.com/KB/database/TypedDataTable.aspx