Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计数选中的复选框数_C#_Asp.net_Code Behind - Fatal编程技术网

C# 计数选中的复选框数

C# 计数选中的复选框数,c#,asp.net,code-behind,C#,Asp.net,Code Behind,我有多个单独的复选框(50) 像这样: <asp:CheckBox runat="server" ID="chkBirthDate" /> 我需要知道用户选择了多少复选框(计数)。如果他选择了3个以上,我会让他通过,如果没有,我会给他一条错误消息 提前谢谢 LINQ方法 您可以利用LINQ的查询功能,使用该方法获取所有单独的复选框控件,然后使用调用查看实际选中了多少: // Get the number of CheckBox Controls that are checked

我有多个单独的复选框(50)

像这样:

<asp:CheckBox runat="server" ID="chkBirthDate" />

我需要知道用户选择了多少复选框(计数)。如果他选择了3个以上,我会让他通过,如果没有,我会给他一条错误消息


提前谢谢

LINQ方法

您可以利用LINQ的查询功能,使用该方法获取所有单独的复选框控件,然后使用调用查看实际选中了多少:

// Get the number of CheckBox Controls that are checked
var checkedBoxes = Form.Controls.OfType<CheckBox>().Count(c => c.Checked);
// Determine if your specific criteria is met
if(checkedBoxes > 3)
{
      // You shall pass!
}
else 
{
      // None shall pass
}
迭代循环方法

或者,您可以简单地通过
foreach
循环循环并相应地增加计数,如下所示:

// Store your count
var checkedBoxes = 0;
// Iterate through all of the Controls in your Form
foreach(Control c in Form.Controls)
{
    // If one of the Controls is a CheckBox and it is checked, then
    // increment your count
    if(c is CheckBox && (c as CheckBox).Checked)
    {
        checkedBoxes++;
    }
}
示例(带输出)

您可以在下面找到并演示:


LINQ方法

您可以利用LINQ的查询功能,使用该方法获取所有单独的复选框控件,然后使用调用查看实际选中了多少:

// Get the number of CheckBox Controls that are checked
var checkedBoxes = Form.Controls.OfType<CheckBox>().Count(c => c.Checked);
// Determine if your specific criteria is met
if(checkedBoxes > 3)
{
      // You shall pass!
}
else 
{
      // None shall pass
}
迭代循环方法

或者,您可以简单地通过
foreach
循环循环并相应地增加计数,如下所示:

// Store your count
var checkedBoxes = 0;
// Iterate through all of the Controls in your Form
foreach(Control c in Form.Controls)
{
    // If one of the Controls is a CheckBox and it is checked, then
    // increment your count
    if(c is CheckBox && (c as CheckBox).Checked)
    {
        checkedBoxes++;
    }
}
示例(带输出)

您可以在下面找到并演示:


它不认识我这个类型。我需要一些使用吗?尝试通过
using System.LINQ添加对LINQ的引用。我需要更换什么吗?因为它不计算任何选中的复选框,请尝试将
控件
调用附加
this.Controls
Form.Controls
以提供访问复选框的适当上下文。嗨,我怎么知道LINQ方法将包含哪些复选框?它不识别我的类型。我需要一些使用吗?尝试通过
using System.LINQ添加对LINQ的引用。我需要更换什么吗?由于它不计算任何选中的复选框,请尝试将
控件
调用附加
this.Controls
Form.Controls
以提供访问复选框的适当上下文。您好,我如何知道LINQ方法将包含哪些复选框?