为了账号安全,请及时绑定邮箱和手机立即绑定

使用 ForEach 迭代 Checkbox 属性而不使用 LINQ

使用 ForEach 迭代 Checkbox 属性而不使用 LINQ

C#
缥缈止盈 2023-09-16 17:52:46
下面的代码循环访问表单上的所有复选框,反转每个复选框的 .Checked 状态。是否可以避免使用 LINQ 来执行此操作?public void TickChecker()    {        foreach (CheckBox con in Controls.OfType<CheckBox>())        {            con.Checked ^= true;        }    }
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

C# 长期以来支持两个运算符来检查对象的类型:is 和 as。C# 7 添加了一种使用 is 运算符的新方法,该方法将 is 与基本模式相结合,为 as 提供替代方案。所以你可以在你的foreach:


foreach (Control con in Controls)

{

    if (con is CheckBox checkBox)

    {

       checkBox.Checked ^= true;

    }

}


查看完整回答
反对 回复 2023-09-16
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

那这个呢:


public void TickChecker()

{

    foreach (var con in Controls)

    {

        CheckBox checkBox = con as CheckBox;

        if (null != checkBox)

        {

            checkBox.Checked ^= true;

        }

    }

}


查看完整回答
反对 回复 2023-09-16
  • 2 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信