【问题标题】:Creation of Separate Backup List<String>创建单独的备份列表<String>
【发布时间】:2016-05-01 09:24:20
【问题描述】:

我需要创建List&lt;String&gt; 的备份副本

OrgList=new List<string>();
//populating OrgList
ListBackup = new List<string>(OrgList);

ListBackup 是作为一个单独的实体保留,还是 OrgList 中的更改自动反映在 ListBackup 中

【问题讨论】:

  • 你为什么不试试看呢?

标签: c# .net linq list


【解决方案1】:
ListBackup = new List<string>(OrgList);

调用List&lt;T&gt;(IEnumerable&lt;T&gt; collection) 构造函数,所以 你会得到一个全新的列表。

由于string不可变的,对OrgList 的更改无法通过ListBackup 可见。但是,这不是深拷贝;如果你对一组可变对象做同样的事情,OrgList 中对象的修改也会在ListBackup 中可见。

您可以通过调用AsReadOnly() 来获得列表的只读视图:

ListView = OrgList.AsReadOnly();

现在对OrgList 的任何更改也会反映在ListView 中。

【讨论】:

  • @techno 是的,对于字符串和其他不可变类,两者表现得完全独立。
猜你喜欢
  • 2021-12-02
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2019-04-12
相关资源
最近更新 更多