【发布时间】:2016-09-13 14:46:25
【问题描述】:
我正在循环列表并在 c# 中附加列表的字典,但它只附加了 forloop 的最后一个值
class Crawl
{
public void SomeFunction()
{
string[] arr1 = new string[] { "one", "two", "three" };
var variations_hash = new Dictionary<string, List<string>>();
foreach(var item1 in arr1)
{
variations_hash["v_id_1"] = item1;
}
foreach (var job in variations_hash)
{
foreach (string jobs in job.Value)
{
Console.Write (jobs+"\n");
}
}
}
. . .
}
结果:
three
预期结果:
one
two
three
如何将所有 for 循环值一一(作为列表/数组)附加到字典(variations_hash)
预期结构将是
{"v_id_1":"["one","two","three"]"}
【问题讨论】:
-
这甚至不应该编译,因为
item1是string并且variations_hash["v_id_1"]期待List<string> -
@juharr:
arr1是数组。item1是foreach将来自arr1的枚举器的每个返回分配给的字符串。 -
@AlexGravely 是的,我知道。这是
variations_hash["v_id_1"] = item1;无法编译的原因,因为它将string分配给List<string>。 -
@juharr:哎呀,我不知道为什么我认为它是在迭代键,而不是值。我需要我的早晨 Pepper 博士。
-
@AlexGravely HA,我已经有了我的;)
标签: c# arrays list dictionary hash