繁体   English   中英

C#两个列表框和两个列表

[英]C# two listboxes and two lists

我正在尝试使两个列表框相互配合工作。 我使用的是Listbox1,Listbox2,List1和List2(在此示例中),这两个列表用于其他目的,因此需要将它们包括在内。

Listbox2应该包含List2的所有内容,listbox1应该包含List1的所有内容,除了List2中的项目。 我一直在尝试许多不同的方法,但是似乎无法克服。 目前,Listbox2已得到填充和完美更新,但我似乎无法让Listbox1相应地工作。

我尝试过的选项(可能写错了):-将List1的所有内容添加到Listbox1,然后删除List2包含的所有内容-遍历每个List1项并检查它是否存在于List2中。 仅在没有添加时添加。

提前致谢!

我知道我要在这里加倍。 我尝试了很多事情,尝试了新事物时删除了所有内容(不要问为什么,坏习惯)

(AddToListbox是一种有效的方法。)

if (classroom.members.Count <= 0)
        {
            foreach (Student student in repository.students)
            {
                AddtoListbox(Listbox1, student);
            }
        }
        else
        {
            foreach (Student student in repository.students)
            {
                foreach (Student studentInClass in classroom.members)
                {
                    if (student.LastName != studentInClass.LastName || student.FirstName != studentInClass.FirstName)
                    {
                        AddtoListbox(Listbox1, student);
                    }
                }
            }
        }

尝试对List1 除外

listbox1.AddRange(List1.Except(List2).Cast<object>.ToArray());

我在等待您的代码时做了一些示例。 我有一个填充两个List<int>的按钮。 第一个列表是1-20,第二个列表是5-9。 您将看到它用5-9填充Listbox1 ,并用1-4和10-20填充Listbox2

private void button1_Click(object sender, EventArgs e)
{
     list1 = new List<int>(Enumerable.Range(5,5));
     list2 = new List<int>(Enumerable.Range(1,20));

     foreach (int num1 in list1)
     {
         listBox1.Items.Add(num1);
     }

     foreach (int num2 in list2)
     {
         bool numFound = false;
         foreach (int num1 in list1)
         {
             if (num2 == num1)
             {
                 numFound = true;
                 break;
             }
         }
         if (!numFound)
             listBox2.Items.Add(num2);
     }
}

不是最雄辩的代码,但是它可以完成工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM