我有一组 RadioButtons,每个都有一个标签名称。我想得到它。如果没有选择 RadioButton,则它为空。我只完成了其中的一部分。
string sGender =
groupBox4.Controls.OfType<RadioButton>().Where(r => r.Checked)
.FirstOrDefault().Tag.ToString();
更新:
如果没有选中任何按钮,它可能会出现异常。
我有一组 RadioButtons,每个都有一个标签名称。我想得到它。如果没有选择 RadioButton,则它为空。我只完成了其中的一部分。
string sGender =
groupBox4.Controls.OfType<RadioButton>().Where(r => r.Checked)
.FirstOrDefault().Tag.ToString();
更新:
如果没有选中任何按钮,它可能会出现异常。
问题到底是什么?这里有错误吗?它是什么,在哪里?您需要确保尽可能清晰准确地指定您的问题。
猜测虽然.FirstOrDefault()
可以返回 null 所以我怀疑你在那里得到了一个空引用异常。在继续之前,您需要检查一下...
string sGender;
var radioButton = groupBox4.Controls.OfType<RadioButton>()
.Where(r => r.Checked).FirstOrDefault();
if (radioButton == null)
{
sGender = "";
}
else
{
sGender = radioButton.Tag.ToString()
}
既然你已经问过了,你可以使用三元运算符来避免使用 if 这个词。在任何实际意义上,这仍然是一个有效的 if 语句。您可以使用它来替换我上面给出的 if 语句,或者如果您真的不顾一切,您可以做一个衬里......我真的会选择最可读的,因为其他选项真的不会添加任何东西并且会失去可读性...
string sGender = groupBox4.Controls.OfType<RadioButton>().Any(r => r.Checked)?
groupBox4.Controls.OfType<RadioButton>().Where(r => r.Checked)
.First().Tag.ToString(): "";