如何比较两个列表框

时间:2014-03-13 23:51:48

标签: c# winforms listbox compare visual-studio-2013

我有两个列表框:Lbl和Lblr。 他们都得到8个独特的随机数。

现在我做了一个方法来比较我选择的数字和另一个列表框中的所有数字,如果不存在则添加它,如果它已经在那里,则删除它。

 public void placer(int Z,ListBox box,ListBox boxxer)
    {
        if (boxxer.Items.Contains(Z))
        { box.Items.RemoveAt(box.SelectedIndex); }
        else
        {
            boxxer.Items.Add(Z);
            box.Items.RemoveAt(box.SelectedIndex);
        }
    }

现在我要做的第二步是将一个列表框中的所有数字与另一个列表框中的所有数字进行比较。 但我不能想到另一种方式,而不是用数组来做,我不认为这是最有效的方式。

需要帮助

1 个答案:

答案 0 :(得分:0)

您可以使用LINQ

var boxItems = box.Items.OfType<int>();
var boxerItems = boxxer.Items.OfType<int>();

bool control = boxItems.OrderBy(x => x)
               .SequenceEqual(boxerItems.OrderBy(y => y));

假设您的所有商品都是数字,那么如果两个listBox包含忽略数字顺序的相同数字,则返回 true 。您可以删除OrderBy方法( s)如果你想关心订单。