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