复制参考本身?

时间:2011-10-19 09:33:29

标签: c# .net

有没有办法让我自己制作一份参考文件?例如,我在表单上添加了一个ListView控件,我想保留其Items Collection,即

ListViewItemCollection lvic = ListView.Items();

当我调用 ListView.Items.Clear()时,不应清除lvic。

2 个答案:

答案 0 :(得分:1)

轻松尝试

  ListViewItem[] items = new ListViewItem[listView1.Items.Count];
  listView1.Items.CopyTo(items, 0);

OR

您需要创建对象的克隆,您可以查看此帖子,讨论对象的克隆:Cloning in C#.NET.

文章中讨论了两种类型的克隆

1. Deep Cloning
2. Shallow Copy

答案 1 :(得分:1)

克隆/复制是一个广泛的主题。这实际上取决于场景。在您的情况下,您可以使用Linq

简单地复制该集合
ListViewItem[] copiedItems = ListView.Items().OfType<ListViewItem>().ToArray();

在这种情况下,请小心克隆。无法将ListViewItemCollection的实例分配给ListView,并且ListView或ListViewItem的副本仍然使用一些本机资源(在winforms和wpf世界中),因此在错误使用时复制将导致可怕的错误