日期:2014-05-17  浏览次数:20973 次

List<Teacher> 修改Teacher对象里面的string[]
List<Teacher> arrTeacher = new List<Teacher>();
Teacher 有一个属性是 是否有课  用一个数组表示
但是修改了 其中一个Teacher对象的 数组 属性 之后,
其他的 Teacher 的是否有课属性 也变了

就好像是 这些Teacher对象 公用 一个 数组似的

如何才能修改其中的一个Teacher对象的是否有课的属性,别的Teacher不跟着变?

------解决方案--------------------
看看属性 是否被声明成静态static或依赖某个特定的数据源了
------解决方案--------------------
 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)
            {
        &n