如何使if语句检查多列表框是否为空?

时间:2015-06-16 04:29:00

标签: c# winforms if-statement listbox

如何创建if语句,询问多个listBox是否为空?

这就是我到目前为止......是否可以将它组合成一个if语句?

    if (listBoxEmails.Items.Count < 1)
    {
     //Perform action
    }

    if (listBoxWebsites.Items.Count < 1)
    {
    //Perform action
    }

    if (listBoxComments.Items.Count < 1)
    {
       //Perform action
    }

5 个答案:

答案 0 :(得分:3)

如果您尝试从表单上的所有列表框中获取计数,则可以执行以下操作:

if (Controls.OfType<ListBox>().Any(z => z.Items.Count < 1))
{
    // Do Something
}

神奇之处在于,如果您在表单上删除或添加任何其他列表框,则无需更改任何代码。如果您想获取特定的列表框,可以将您想要包含的所有列表框中的Tag属性设置为CountedListBox,然后执行以下操作:

if (Controls.OfType<ListBox>().Any(z => z.Items.Count < 1 && ((string)z.Tag == "CountedListBox")))
{
    // Do something
}

答案 1 :(得分:2)

您可以在某些集合中使用列表框,如果任何列表为空,您可以在一个语句中找到linq。像这样的东西。当然,列表框集合可以采用不同的方法。

    private void ValidateListBoxes()
    {
        List<ListBox> listBoxes = new List<ListBox>();
        listBoxes.Add(listBoxEmails);
        listBoxes.Add(listBoxWebsites);
        listBoxes.Add(listBoxComments);

        bool isContainingEmptyList = listBoxes.Any(l => l.Items.Count < 1 || l.Items.Count==0);
    }

答案 2 :(得分:1)

if (listBoxEmails.Items.Count >= 0 && listBoxWebsites.Items.Count >= 0 && 

    listBoxComments.Items.Count >= 0)
    {
    //perform action

    }

答案 3 :(得分:0)

这是我能想到的最简单的解决方案,

if (listBoxEmails.Items.Any() && listBoxWebsites.Items.Any() && listBoxComments.Items.Any())
{
    // Do something here,
 }

答案 4 :(得分:0)

这是WPF还是WinForms?你可以这样做:

    var performAction = (!listBoxEmails.Items.IsEmpty | !listBoxWebsites.Items.IsEmpty | !listBoxComments.Items.IsEmpty);
    if (performAction)
    {

    }