检查控件中是否至少有一个文本框不为空
Check if at least one Textbox is not null within control
我正在尝试检查是否至少有一个 Textbox
不为空,如下所示,但如果所有 Textbox
不为空且至少有一个
foreach (TextBox cont in GB_Search.Controls.OfType<TextBox>())
{
if (string.IsNullOrEmpty(cont.Text))
{
// at least one control
}
}
您可以为此使用 Linq。
以下将检查至少有一个不应该为 null,如果至少有一个文本框包含值,则 return true
:
var oneHasValue = GB_Search.Controls.OfType<TextBox>()
.Any(x=>!string.IsNullOrEmpty(x.Text));
如果所有内容都不为 null 或为空,则以下将 return true
:
var allContainValue = GB_Search.Controls.OfType<TextBox>()
.All(x=>!string.IsNullOrEmpty(x.Text));
System.Windows.Controls TextBox
TextBox.Text
属性 的默认值是一个空字符串,所以除非你明确地将它设置为 null
我不明白你为什么要检查无效性。
您很可能想看看 TextBox.Text
中是否有任何一个是空的,如下所示:
var result = GB_Search.Controls.OfType<TextBox>()
.Any(textBox => textBox.Text.Length == 0);
或者如果有 non-empty:
var result = GB_Search.Controls.OfType<TextBox>()
.Any(textBox => !(textBox.Text.Length == 0));
注意 - 我专门使用 TextBox
的 Length
属性 来检查它是否为空,而不是 String.IsNullOrEmpty
,这仅仅是因为如前所述TextBox.Text
上面默认是一个空字符串,正如您在 post 下的评论部分中提到的那样,您没有明确将其设置为 null
,因此无需使用 String.IsNullOrEmpty
因为它会执行您不需要的冗余检查。
正在查看是否有任何 TextBox.Text
为 null 或为空:
var result = GB_Search.Controls.OfType<TextBox>()
.Any(textBox => string.IsNullOrEmpty(textBox.Text));
或者如果有任何非空和非空:
var result = GB_Search.Controls.OfType<TextBox>()
.Any(textBox => !string.IsNullOrEmpty(textBox.Text));
我正在尝试检查是否至少有一个 Textbox
不为空,如下所示,但如果所有 Textbox
不为空且至少有一个
foreach (TextBox cont in GB_Search.Controls.OfType<TextBox>())
{
if (string.IsNullOrEmpty(cont.Text))
{
// at least one control
}
}
您可以为此使用 Linq。
以下将检查至少有一个不应该为 null,如果至少有一个文本框包含值,则 return true
:
var oneHasValue = GB_Search.Controls.OfType<TextBox>()
.Any(x=>!string.IsNullOrEmpty(x.Text));
如果所有内容都不为 null 或为空,则以下将 return true
:
var allContainValue = GB_Search.Controls.OfType<TextBox>()
.All(x=>!string.IsNullOrEmpty(x.Text));
System.Windows.Controls TextBox
TextBox.Text
属性 的默认值是一个空字符串,所以除非你明确地将它设置为 null
我不明白你为什么要检查无效性。
您很可能想看看 TextBox.Text
中是否有任何一个是空的,如下所示:
var result = GB_Search.Controls.OfType<TextBox>()
.Any(textBox => textBox.Text.Length == 0);
或者如果有 non-empty:
var result = GB_Search.Controls.OfType<TextBox>()
.Any(textBox => !(textBox.Text.Length == 0));
注意 - 我专门使用 TextBox
的 Length
属性 来检查它是否为空,而不是 String.IsNullOrEmpty
,这仅仅是因为如前所述TextBox.Text
上面默认是一个空字符串,正如您在 post 下的评论部分中提到的那样,您没有明确将其设置为 null
,因此无需使用 String.IsNullOrEmpty
因为它会执行您不需要的冗余检查。
正在查看是否有任何 TextBox.Text
为 null 或为空:
var result = GB_Search.Controls.OfType<TextBox>()
.Any(textBox => string.IsNullOrEmpty(textBox.Text));
或者如果有任何非空和非空:
var result = GB_Search.Controls.OfType<TextBox>()
.Any(textBox => !string.IsNullOrEmpty(textBox.Text));