数组为所有索引返回相同的值

iam*_*ody 2 c# arrays

我创建了一个名为Participant的对象.现在我想拥有一个Participant对象数组,以便我可以在datagrid中显示它们.

以下是我尝试的代码(为了更好地理解问题,我删除了循环和数据网格代码):

Participant[] list = new Participant[count];
Participant one = new Participant(name, address);
Participant two = new Participant(name2, address2);

list[0] = one;
list[1] = two;
Run Code Online (Sandbox Code Playgroud)

但是,当我以这种方式通过消息框获得一个参与者的值时,

MessageBox.Show(list[0].getName());
Run Code Online (Sandbox Code Playgroud)

它反映的是参与者二的数据.如果我有3个对象也是如此,它反映的是最后发送到数组的数据.

我知道有可能有一些对象,所以必须有一些我做错了.或者有更好的方法吗?

Mar*_*ell 5

使用所呈现的代码,我能想到的唯一方法就是将backig字段(in Participant)声明为" static".如果是这样,请删除" static".

除此以外; 实际代码是否new为这两个对象做了" "?或者在将对象添加到数组后覆盖它?(这意味着你在数组中有两次相同的对象).

我希望ReferenceEquals(list[0], list[1])在一个理智的世界中是假的 - 你能测试一下并让我们知道吗?

最后的想法; foreach真实代码中有" "吗?它可能是臭名昭着的变量问题 ......