【发布时间】:2015-12-10 21:50:53
【问题描述】:
我正在尝试让两个列表框相互配合。 我正在使用 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);
}
}
}
}
【问题讨论】:
-
可以肯定的是,Listbox2 可以显示列表 2 中已经在列表 1 中的内容,对吧?
-
List1 是例如 10 名学生(所有学生)的集合。 List2 是某个班级的学生的集合,例如 6/10 学生(只有在校学生),这意味着 List2 是 List1 的一部分。 Listbox1 应该显示 List1 减去 List2。在这个小例子中,List1 应该显示 4 个学生,而 List2 显示其他 6 个学生
-
你能发布你目前拥有的东西吗?我最初的想法是首先填充 Listbox2。然后在填充 Listbox1 时使用 Foreach 并遍历 List2 中的每个项目以确保没有重复项。
-
@Kevin 假设你有 LINQ。见这里:stackoverflow.com/questions/683310/…
-
@Kevin 分享您的代码,我们可以找出您哪里出错了。