【发布时间】:2016-04-18 06:35:01
【问题描述】:
我想填充一个列表
dictionary.timeslot_events.Add(t, new List<int>() { i });
但它给了我一个例外,已经添加了更多具有相同密钥的项目。
我还尝试使用添加函数timeslot_events.Add(t, new List<int>() { i }); 填充列表,但给我的例外是字典中不存在给定的键。
请指导我如何成功填充它。?在 C++ 中,我曾经这样做过
map<int, vector<int>>
for (int i = 0; i < data.noevents; i++)
{
int t = (int)(rg.Next(1, 45));
Console.WriteLine(t);
timeslot_events.Add(t, new List<int>() { i });
}
【问题讨论】:
-
您正在生成 1-45 之间的随机数,并将它们用作键。可能会生成两次相同的数字,并且字典必须具有唯一键。
-
在 c++ 中我曾经用 map
> 做 i -
你应该正确解释你到底想要什么?你想要什么作为关键,什么作为价值
-
1.您的第一种和第二种方法是相同的。您基本上不能将具有相同键的项目多次添加到字典中,就这么简单。尝试
timeslot_events[t] = new List<int>() { i })添加或更新字典。 2. 告诉我们变量rg是如何获得的。这可能是关键。 3. 如果你想继续添加到内部列表,首先获取键的内部列表并添加到它(如果不存在,为该键创建一个新列表) -
但我想添加具有相同键的项目列表。我如何在 C# 中做到这一点?
标签: c# list dictionary dynamic collections