在我的代码中,我有一个名为“teacher”的类,里面有一些数组:
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 []类型的对象。
如果有人知道如何处理这件事,那我真的很感激。
答案 0 :(得分:3)
你的最后两部分在初始化程序中不起作用的原因是你需要这样做:
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...
});