簡體   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