通过字典和图形迭代

时间:2014-05-21 18:51:03

标签: c# dictionary foreach iterator

我有一个字典填充了一个值,该值是一个包含int和double的类。我试图通过遍历字典将图中的两个int值绘制为图形上的x和y点。这就是它的样子:

foreach(KeyValuePair<int, Class> Pair in MyClass)
{
chart1.Series["series1"].Points.AddXY(Pair.Value.intA, Pair.Value.doubleB);
}

我的问题是,当字典有超过100行时,唯一被绘制的x-y对是字典中包含的最后一个类。我不知道为什么会这样,我不知所措。感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

你如何在MyClass中声明Class的实例?

如果你这样做

var item = new Class();
var items = new Dictionary<int, Class>();
for(var x = 0; x < 100; x++)
{
    item.Value = x;
    items[x] = item;
}

字典中的每个KeyValuePair都引用了相同的Class实例。

如果你这样做

var items = new Dictionary<int, Class>();
for(var x = 0; x < 100; x++)
{
    var item = new Class();
    item.Value = x;
    items[x] = item;
}

字典中的每个KeyValuePair都引用了一个新的Class实例。