C# ListView.Items.Add将ListViewItem添加到错误的ListView

C# ListView.Items.Add将ListViewItem添加到错误的ListView,c#,listview,listviewitem,C#,Listview,Listviewitem,我的代码中有两个ListView对象,MovieList和UserFriendList。我有一个这样的方法 public void passFriends(ListViewItem[] friends) { foreach (ListViewItem tempItem in friends) { ListViewItem temp = new ListViewItem(); temp = (ListViewI

我的代码中有两个ListView对象,MovieList和UserFriendList。我有一个这样的方法

public void passFriends(ListViewItem[] friends)
    {
        foreach (ListViewItem tempItem in friends)
        {
            ListViewItem temp = new ListViewItem();
            temp = (ListViewItem)tempItem.Clone();
            UserFriendList.Items.Add(temp);
        }
    }
该方法旨在将ListViewItems数组从一个表单传递到另一个表单,然后将每个listview项添加到UserFriendList。但是,当我实际执行该操作时,ListViewItem(用户)将添加到我的MovieList而不是UserFriendsList


有人知道为什么会发生这种情况吗?

这个问题可以结束了。我发现问题出在我的问题上。用于演示列表切换的一段遗留代码没有被删除,它正在更改UserFriendList的listview

这里的MovieList在哪里?MovieList不是此方法的一部分,这就是它如此令人困惑的原因。但是,初始化MovieList并向其添加列的代码可以在form的构造函数中找到。temp变量中的值是多少?如果UserFriendList是对MovieList的引用,那么在MovieList中显示的UserFriendList中似乎添加到UserFriendList的临时项的类型/唯一方式是什么。也就是说,如果显示的代码是正在执行的实际代码。您可以尝试的一件事是首先进行清理并重新编译。然后看一看,你没有将MovieList分配给UserFriendList。这与你的问题无关,但是为什么你要创建一个新的temp实例,然后在下一行中为temp分配一个不同的对象呢?为什么不这样做:
ListViewItem temp=(ListViewItem)tempItem.Clone()