1

RadioButtonのグループがあり、それぞれにタグ名があります。入手したいです。RadioButtonが選択されていない場合は、空です。私はそれらの一部だけを完成させます。

string sGender = 
    groupBox4.Controls.OfType<RadioButton>().Where(r => r.Checked)
        .FirstOrDefault().Tag.ToString();

更新

ボットンがチェックされていない場合、例外が発生する可能性があります。

4

1 に答える 1

2

質問は正確には何ですか?ここにエラーはありますか?それは何で、どこですか?質問をできるだけ明確かつ正確に指定する必要があります。

推測では.FirstOrDefault()nullを返す可能性があるので、そこで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(): "";
于 2012-07-27T13:20:03.223 に答える