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

C# 为所有索引返回相同值的数组,c#,arrays,C#,Arrays,我创建了一个名为Participant的对象。 现在我想要一个参与者对象的数组,以便在数据网格中显示它们 以下是我尝试过的代码(为了更好地理解这个问题,我删除了循环和datagrid代码): 但是,当我以这种方式通过messagebox获得一个参与者的值时 MessageBox.Show(list[0].getName()); 它所反映的只是参与者二的数据。如果我有3个对象也是如此,它所反映的只是上次发送到数组中的数据 我知道有可能有一个对象数组,所以一定是我做错了什么。还是有更好的方法 如果

我创建了一个名为Participant的对象。 现在我想要一个参与者对象的数组,以便在数据网格中显示它们

以下是我尝试过的代码(为了更好地理解这个问题,我删除了循环和datagrid代码):

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

MessageBox.Show(list[0].getName());
它所反映的只是参与者二的数据。如果我有3个对象也是如此,它所反映的只是上次发送到数组中的数据


我知道有可能有一个对象数组,所以一定是我做错了什么。还是有更好的方法

如果使用循环填充数组,请确保在分配参与者时使用循环索引作为数组的索引。

对于所显示的代码,我能想到的唯一原因是,如果backig字段(在
参与者中
)被声明为“
静态
”。如果是,请删除“
静态”

否则;实际代码是否对这两个对象执行“
新建”
?或者在将对象添加到数组后是否会覆盖该对象?(这意味着您在数组中有两次相同的对象)

我认为
ReferenceEquals(列表[0],列表[1])
在一个理智的世界里是错误的-你能测试一下并让我们知道吗


最后的思考;在实际代码中是否有“
foreach
”?可能是

调试是一项被低估的技能。。。在创建数组并将列表添加为监视的行上设置断点,然后展开它以查看内容。在创建参与者时,逐步浏览代码并将鼠标悬停在参数上,以查看传递的值。跨过将它们添加到列表中的状态,并在手表中验证每次数组中的项目和值是否正确,以及现有值是否没有更改。

我想您可能想实际显示一些循环代码,我认为您的问题就在那里。我想,在没有看到代码的情况下。你怎么能讨论这么多?你有什么错误吗百科全书:@Marc Gravell:没问题。令我惊讶的是,iPod没有背景;iPhone没有(当输入文本时,按住撇号键,会出现一列其他符号,包括反勾号)。请参见此处的提示2:。我自己在无法打破加法的情况下使用过很多次,并且在火车上、车上、杂货店、约会或……时必须回答或评论。。。。“啊!”马克·格雷威尔-这真是太有天赋了。我对你的c#知识感到惊讶。我不知道我的对象类充满了“静态”变量。这解决了我的问题I’非常感谢你@“静态”是指每种类型;因此,过多的静态变量通常是一个错误。调试一直是我编程时最好的朋友。我已经用这段代码做了很长一段时间了,只是没有想到变量被设置为静态的。无论如何,谢谢!:)
MessageBox.Show(list[0].getName());