c# ToList疑惑,求高手解

1:问题描述

有三个类,Department,Method和Data

a.Department里面有个Data的集合,如下:

 public class Department
    {
        public List<Data> BakDatas = new List<Data>();
    }

b.Method里面也有个Data的集合,如下:

public class Method
    {
       public List<Data> Datas;
    }

c.Data类:

  public class Data
    {
        public double Temperature
        {
            get;
            set;
        }          
    }

d.Method与Department的关系:

            dept = new Department();
            method = new Method();
            method.Datas = dept.BakDatas;

这样建立以后,原则上给dept.BakDatas值,method.Datas count个数应该和dept.BackDatas count个数一样,可是下面测试(下面红色字体)并不是这样,不知为什么,求高手解??

 

附代码:

 /// <summary>
        /// 设置关联,检查:dept.BakDatas的变化将影响methodDP.Datas
        /// </summary>
        private void InitInstance()
        {
            dept = new Department();
            method = new Method();
            method.Datas = dept.BakDatas;
        }
      

 private List <Data > initBackDatas()
        {
            List <Data > BakDatas=new List<Data> ();  
         
            Data dt1 = new Data() {  Temperature = 21 };
            Data dt2 = new Data() {  Temperature = 22 };
            Data dt3 = new Data() {  Temperature = 23 };
            BakDatas.Add(dt1);
            BakDatas.Add(dt2);
            BakDatas.Add(dt3);
            return BakDatas ;
        }

 

       /// <summary>
        /// 测试错误why
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnTestAdd_Click(object sender, EventArgs e)
        {
            InitInstance();
            List<Data> BackDatas = initBackDatas();
            dept.BakDatas = BackDatas.ToList();

            //显示:dept:3;Method:0
            string infoCheck= = "dept:"+dept.BakDatas.Count.ToString()
                + ";Method:" + method.Datas.Count.ToString ();
        }
        /// <summary>
        /// 测试正确
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnTestClear_Click(object sender, EventArgs e)
        {
            InitInstance();
            List<Data> BackDatas = initBackDatas();
           
            dept.BakDatas.Clear();
            dept.BakDatas.AddRange(BackDatas );

            //dept:3;Method:3
            string infoCheck= "dept:" + dept.BakDatas.Count.ToString()
              + ";Method:" + method.Datas.Count.ToString();
        }

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值