for (var i = 0; i < entity.files[temp].slides.Count(); i++){
entity.files[temp].slides[i].versions[0] = Program.optionNode.Attributes["cloudfrontLocation"].Value + "/" + customer + "/" + fileName + "/Slide" + (i+1) + "_v1.PNG";
Console.WriteLine("after loop " + i + " value is " + entity.files[temp].slides[0].versions[0]);
Console.WriteLine();
}
这导致这些日志:
循环0后的值是 https://xxxxxxxxxxx.cloudfront.net//xxxxxxxxxxxxx/xxxxxxxxxx/Slide1_v1.PNG
循环1后的值是 https://xxxxxxxxxxx.cloudfront.net//xxxxxxxxxxxxx/xxxxxxxxxx/Slide2_v1.PNG
循环2后的值是 https://xxxxxxxxxxx.cloudfront.net//xxxxxxxxxxxxx/xxxxxxxxxx/Slide2_v1.PNG
它应该是第一个循环,但我不知道为什么slides[0].versions[0]
在第二次迭代时会发生变化,而它应该访问slides[1].versions[0]
。我也正在记录i
,以便您可以看到它发生了变化。
为什么值entity.files[temp].slides[0].versions[0]
在循环的第二次迭代中发生变化?
我的循环有问题吗?
答案 0 :(得分:0)
当值entity.files[temp].slides[0].versions[0]
在循环的第一次和第二次迭代中仅更改 时,slides[0]
和slides[1]
指向同一个对象。
因此,当slides[1]
发生变化时,slides[0]
也会发生变化。