从另一个数组列表添加到数组列表
本文关键字:列表 数组 添加 另一个 | 更新日期: 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]);
另外,顺便说一下,这只会复制每个元素的引用,它不会为每个元素创建一个新的副本。