gpt4 book ai didi

c# 清除列表与将新列表分配给现有变量

转载 作者:行者123 更新时间:2023-12-04 01:15:57 26 4
gpt4 key购买 nike

我正在学习 C#。

如果我首先创建一个变量来保存列表。

List<int> mylist = new List<int>();

假设我对列表做了一些工作,现在我想清除列表以将其用于其他用途。所以我执行以下操作之一:

方法一:
mylist.Clear();

方法二:
mylist = new List<int>();

目的只是清空列表中的所有值以重用列表。

使用method2有什么副作用吗?我是否应该偏爱一种方法而不是另一种方法。

我也发现了一个类似的问题,
Using the "clear" method vs. New Object
我会让其他读者决定什么最适合他们自己的用例。所以我不会选择正确的答案。

最佳答案

使用方法 2 可能会导致程序中出现意外行为,具体取决于您使用列表的方式。

如果您要执行以下操作:

List<int> myList = new List<int> { 1, 2, 3 };

someObj.listData = myList;

myList = new List<int>(); // clearing the list.

“someObj”中的数据仍将是 1,2,3。

但是,如果您改为执行 myList.clear(),那么“someObj”中的数据也将被清除。

我刚刚有一个额外的想法。如果您对原始列表有悬空引用,并使用 new 重新分配变量以清除它,则 GC 将永远不会清理该内存。如果您需要清空列表的内容,我会说使用 .clear() 方法总是更安全。

关于c# 清除列表与将新列表分配给现有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54135574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com