【问题标题】:How can I add a reference to a List如何添加对列表的引用
【发布时间】:2016-06-08 14:24:38
【问题描述】:

我认为 List 包含对象的引用,所以我想我可以创建一个名为“Node”的自定义类的对象,将其添加到列表中,然后通过将其分配为 null 来删除该对象。 (我知道我可以使用从列表中删除,但这不是我想要做的。)所以当我再次打印列表时,即使我将它分配为 null,它仍然会打印对象名称“testNode”。如何添加对列表的引用?

Node testNode = new Node("Name", id);
List<Node> listNodes = new List<Node>();
listNodes.Add(testNode);

for (int i = 0; i < listNodes.Count; i++)
    listNodes[i].ToString();

testNode = null;

for (int i = 0; i < listNodes.Count; i++)
    listNodes[i].ToString();

【问题讨论】:

  • 回答标题中的问题,你已经是了。 testNode 也是 一个引用,因此您只需将 testNode reference 设置为 null。实际对象仍然存在,并且它被另一个引用(您的列表)指向,因此它保持不变

标签: c# list reference


【解决方案1】:

您添加到列表中的是对该Node 实例的引用。不是对您的变量的引用。

testNode = null;

您只需将 null 分配给您的变量。这对 testNode 引用的真实实例没有任何影响。它不会更改列表或从列表中删除 reference

所以从列表中删除引用的唯一方法是 - 好吧 - Remove:

listNodes.Remove(testNode);

【讨论】:

  • 谢谢!我通过更改 Node.js 的成员变量实现了我想做的事情。所以当我写testNode.type = null; 时,它确实在列表的第二个打印中发生了变化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-08
  • 2012-04-07
  • 2013-05-02
  • 2013-09-10
  • 1970-01-01
相关资源
最近更新 更多