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

本文关键字:列表 是否 何使 if 语句 检查 | 更新日期: 2023-09-27 17:56:20

如何创建一个 if 语句来询问多个列表框是否为空?

这就是我到目前为止所拥有的...是否可以将其合并为一个 if 语句?

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

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

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

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
}

您可以在某个集合中使用列表框,并且使用 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);
    }
if (listBoxEmails.Items.Count >= 0 && listBoxWebsites.Items.Count >= 0 && 
    listBoxComments.Items.Count >= 0)
    {
    //perform action
    }
这是我

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

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

在WPF还是WinForms中?你可以做:

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