从另一个数组列表添加到数组列表

本文关键字:列表 数组 添加 另一个 | 更新日期: 2023-09-27 18:05:50

我有一个程序,我试图通过列表框将项目从一个数组列表移动到另一个数组列表,但当我试图将其添加到第二个数组列表时,它不添加那里。

ArrayList list1 = new ArrayList();
ArrayList list2 = new ArrayList();
list1.Add(new Class(var1, var2, var3, var4, var5, var6, var7));
foreach (object o in list1)
        {
            class m = (class)o;
            selectionBox.Items.Add(m);
        }

我初始化了上面的所有内容,并将所有内容添加到类中,然后添加到列表框中。注意我从XML文件中得到的变量。

 bool req = true;
        if (selectionBox.SelectedItem != null)
        {
            Count++;
            errorLabel.Text = "";
            for (int i = 0; i < selectionBox.Items.Count; i++)
            {
                if (selectionBox.GetSelected(i) == true)
                {
                    class m = selectionBox.SelectedItem as class;
                    if (m.var2 == ((Modules)selectionBox.Items[i]).var2)
                    {
                        list2.Add(list1.IndexOf(i));
                    }
                }
            }
        }
        else
        {
            errorLabel.Text = "Error";
        }

在这里,我试图将它添加到第二个数组列表,但它不工作的if语句,但是是正确的,我已经尝试过这个打印语句。有人能告诉我为什么下面这行没有加到列表中吗?

 list2.Add(list1.IndexOf(i));

从另一个数组列表添加到数组列表

list2.Add(list1.IndexOf(i));将给出每个元素的索引(位置)。而不是元素本身

要添加元素,您需要这样做:

list2.Add(list1[i]);

另外,顺便说一下,这只会复制每个元素的引用,它不会为每个元素创建一个新的副本。