检查并将复选框值分配给C#中的字符串

Val*_*ien 2 c# asp.net

我很累,很难过,所以想知道是否有人知道更好的方法:

我有4个复选框,用户可以选择无,一个或全部,或任何组合.然后在后面的代码中,我想检查所有CheckBoxes,如果它已被选中,则取其值(文本)并将其分配给1个字符串,并根据需要用逗号分隔.

这很好用但是分配所有.Text是否已经检查了项目.

 if (CheckBox1.Checked || CheckBox2.Checked || CheckBox3.Checked || CheckBox4.Checked)
    {
      ClientString = CheckBox1.Text + ", " + CheckBox2.Text + ", " + CheckBox3.Text + ", " + CheckBox4.Text; 
    }
Run Code Online (Sandbox Code Playgroud)

我正盯着它,我知道解决方案非常简单,但我现在太累了,无法想清楚,想知道我做错了什么.代码是C#(ASP.NET).

如何轮询4个CheckBox并检查它是否已将其值分配给字符串,如果未选中则忽略它?

谢谢.

Cla*_*edi 6

这样的事情怎么样?(未测试)

对于.NET 3.5

var checkboxList = new List<CheckBox>{CheckBox1,CheckBox2,CheckBox3,CheckBox4};
var messages = checkboxList
      .Where(x => x.Checked)
      .Select(x => x.Text)
      .ToArray();
ClientString = string.Join(", ", messages);
Run Code Online (Sandbox Code Playgroud)

对于.NET 4.0

var checkboxList = new List<CheckBox>{CheckBox1,CheckBox2,CheckBox3,CheckBox4};
var messages = checkboxList
      .Where(x => x.Checked)
      .Select(x => x.Text);
ClientString = string.Join(", ", messages);
Run Code Online (Sandbox Code Playgroud)