List<Teacher> 修改Teacher对象里面的string[]
List<Teacher> arrTeacher = new List<Teacher>();Teacher 有一个属性是 是否有课 用一个数组表示
但是修改了 其中一个Teacher对象的 数组 属性 之后,
其他的 Teacher 的是否有课属性 也变了
就好像是 这些Teacher对象 公用 一个 数组似的
如何才能修改其中的一个Teacher对象的是否有课的属性,别的Teacher不跟着变? --------------------编程问答-------------------- 看看属性 是否被声明成静态static或依赖某个特定的数据源了 --------------------编程问答-------------------- 測試了一下,沒有問題。你還是把源代碼貼出來,這樣才容易發現問題。 --------------------编程问答-------------------- 肯定是你都引用了同一个对象了
你在Teacher的构造函数中,初始化那个属性吧 --------------------编程问答-------------------- arrTeacher.Add(new Teacher() { 数组属性 = (string[])数组.Clone() }); --------------------编程问答-------------------- 每次添加teacher的时候都应该new一次。 --------------------编程问答-------------------- class Teacher
{
//姓名
public string Name;
//是否有课
public string[] IsAvailable;
}
public void test()
{
List<Teacher> arrTeacher = new List<Teacher>();
//两个老师
Teacher t1 = new Teacher();
Teacher t2 = new Teacher();
string[] tempAvailable = {"1","0", "1", "0", "1", "0" };
string[] tempAvailable2 = { "0", "0", "0", "0", "0", "0" };
t1.IsAvailable = tempAvailable;
t1.Name = "张三";
t2.IsAvailable = tempAvailable2;
t2.Name = "李四";
arrTeacher.Add(t1);
arrTeacher.Add(t2);
//修改张三是否有课属性
foreach(var t in arrTeacher)
{
if (t.Name == "张三")
{
string[] newAvailable={ "1", "1", "1", "1", "1", "1" };
t.IsAvailable = newAvailable;
}
}
}
只会改一个教师的属性啊 不知道我理解的对不对
补充:.NET技术 , C#