[英]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.