将更多值添加到字典中的相同键(C#3.0)

时间:2010-05-28 12:41:43

标签: c#-3.0

我有一个像

这样的词典
public Dictionary<DateTime, Dictionary<string, string>> dicCollection 

如何在此词典中为同一个键添加更多值?

使用C#3.0

5 个答案:

答案 0 :(得分:3)

如果您想为单个键设置多个值,则需要将值放入集合中或创建一个包含所需数据成员的对象。

将您的值更改为List&lt;&gt;:

可能最简单
public Dictionary<DateTime, List<Dictionary<string, string>>> myDictionary;

答案 1 :(得分:2)

如果您尝试在示例中向外部字典添加值,则可以使用以下代码:

if(dicCollection.ContainsKey(someDateTime))
    dicCollection[someDateTime].Add("key","value");
else
{
    Dictionary<string, string> newInner = new Dictionary<string, string>();
    newInner.Add("key","value");
    dicCollection.Add(someDateTime, newInner);
}

这将确保当新密钥被添加到外部字典时,内部字典将不为null(如果它为null,则调用Add将抛出空引用异常)。

答案 2 :(得分:0)

您可以声明一个字典,其中值存储在列表中。 类似于:

Dictionary<string,List<int>> dict ...

答案 3 :(得分:0)

字典的键和关联值是集合。一个键不能有多个值。原因是当您按键检索值时,只返回一个值。字典如何知道您想要的值?

您可能希望将值类型实现为集合。这样,您可以检索与一个键关联的多个值。所以你可以把它定义为让我们说一个值的对象列表:

Dictionary<String,List<Object>> myDictionary;

这就是我要做的事。

答案 4 :(得分:0)

以下代码将在外部字典中查找条目,并在其内部字典中添加新条目。这就是你想要的吗?

dicCollection[specificDateValue].Add(newKey, newValue)

请记住,您应首先通过调用dicCollection.ContainsKey(specificDateValue)检查是否存在specificDateValue,然后通过使用ContainsKey调用其newKey方法在内部字典中执行相同操作。< / p>