我有一个像
这样的词典public Dictionary<DateTime, Dictionary<string, string>> dicCollection
如何在此词典中为同一个键添加更多值?
使用C#3.0
答案 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>