从列表框添加到数组列表所选项目无法正常工作

时间:2013-03-25 21:24:32

标签: c# winforms arraylist listbox

我有一个程序,我试图通过arrayList将项目从一个listbox移动到另一个ArrayList list1 = new ArrayList(); ArrayList list2 = new ArrayList(); list1.Add(new RandomClass(var1, var2, var3, var4, var5, var6, var7)); foreach (object o in list1) { RandomClass m = (RandomClass)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)
        {

            RandomClass m = selectionBox.SelectedItem as RandomClass;
            if (m.var2 == ((RandomClass)selectionBox.Items[i]).var2)
            {
                list2.Add(list1[i]);
            }
        }
    }
}
else
{
    errorLabel.Text = "Error";
}

这是我的初始化代码。

{{1}}

这是我添加到另一个数组列表的位置。然而,正如我经常说的那样,项目会重复而不会有所不同,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

每次扫描并添加第一个列表中的项目时,请尝试清除第二个列表。

list2.Clear();
 for (int i = 0; i < selectionBox.Items.Count; i++)
....

答案 1 :(得分:0)

我已经使用我的班级列表修复了这个问题,似乎没有问题。

 List<RandomClass> list2 = new List<RandomClass>();

然后在添加时我只需将以下内容放在if语句

 list2.Add(m);