关闭

c# ToList疑惑,求高手解

标签: c#classobjectstring测试list
4763人阅读 评论(4) 收藏 举报
分类:

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

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35715次
    • 积分:621
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:4篇
    • 译文:10篇
    • 评论:6条
    最新评论