如何创建if语句,询问多个listBox是否为空?
这就是我到目前为止......是否可以将它组合成一个if语句?
if (listBoxEmails.Items.Count < 1)
{
//Perform action
}
if (listBoxWebsites.Items.Count < 1)
{
//Perform action
}
if (listBoxComments.Items.Count < 1)
{
//Perform action
}
答案 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)
{
}