如何在列表中设置对象

时间:2018-03-21 17:53:45

标签: c# variables

我有代码:

Foo f1 = new Foo();
Foo f2 = new Foo();

List<Foo> list = new List<Foo>() { f1 };

// ... 

Foo f = list[0];
f = f2; // <===

Console.WriteLine((list[0] == f)); 

最后一行显示&#34; false&#34;。但我想要改变列表[0]&#39;通过改变&#39; f&#39;变量(不是直接列表[0])(行&#39;&lt; ===&#39;)。可能是,我需要使用指针(例如在&amp; list [0]地址中创建新对象)?

1 个答案:

答案 0 :(得分:2)

  

我希望通过更改list[0]变量(而不是直接f)来更改list[0]

这是不可能的。集合list由指向对象的指针组成,变量f1f2f都是指向对象的指针。

通过更改f的指针,您不会自动更改碰巧指向同一对象的集合中保存的指针。

顺便说一下,这种行为是件好事。