将值分配给bool';s基于复选框

本文关键字:复选框 分配 bool | 更新日期: 2023-09-27 18:27:13

在我的代码中,我有一个名为"教师"的类,它里面有一些数组:

public class teacher
    {
        //monday
        public bool[] mon = new bool[11];
        //tuesday
        public bool[] tue = new bool[11];
        //wednesday
        public bool[] wed = new bool[11];
        //thursday
        public bool[] thu = new bool[11];
        //fri
        public bool[] fri = new bool[11];
    };

还有一份教师名单:

       List<teacher> teachers = new List<teacher>();

现在,一旦我点击一个添加教师的按钮,我就希望这些数组填充相关复选框的值,即

 teachers.Add(new teacher
        {
            mon[0] = checkBox25.Checked,
            mon[1] = checkBox26.Checked,
            mon[2] = checkBox27.Checked,
        }

但它不允许我访问mon[0],因为它说"无效的初始值设定项成员声明符"。关于如何分配价值有什么想法吗?

我还将最后一段代码更改为:

mon = {checkBox25.Checked, checkBox26.Checked, checkBox27.Checked, checkBox28.Checked, checkBox29.Checked, checkBox30.Checked, checkBox31.Checked, checkBox32.Checked, checkBox33.Checked, checkBox34.Checked, checkBox35.Checked},

但是现在它说它不能用集合初始化器初始化bool[]类型的对象。

拜托,如果有人知道该怎么处理的话,我真的很感激。

将值分配给bool';s基于复选框

最后两个部分在初始化器中不起作用的原因是您需要这样做:

teachers.Add(new teacher
    {
        mon = new[] 
            {
                checkBox25.Checked, 
                checkBox26.Checked, 
                checkBox27.Checked, 
                checkBox28.Checked, 
                checkBox29.Checked, 
                checkBox30.Checked, 
                checkBox31.Checked, 
                checkBox32.Checked, 
                checkBox33.Checked, 
                checkBox34.Checked, 
                checkBox35.Checked
            },
        // etc...
    });

您需要其中的new[]来构造bool的新数组,然后初始化器列表指定其内容。

也就是说,你最好把复选框控件收集在一起(在数组或List<T>等中),这样你就可以在作业中查询它们,比如:

teachers.Add(new teacher
    {
        mon = monCheckBoxes.Select(cb => cb.Checked).ToArray(),
        tue = // etc... 
    });