コード例 #1
0
        public void CopyFunction()
        {
            // 准备一个list
            List <CopyClassModel> list = new List <CopyClassModel> {
            };

            for (int i = 0; i < 10; i++)
            {
                list.Add(new CopyClassModel {
                    Id = i, Name = i + "One"
                });
            }
            // 浅拷贝
            //var newlist = new CopyClassModel[10];
            //list.CopyTo(newlist);
            var newlist = list;

            // 深拷贝
            var deepcopylist = DeepCopy.DeepCopyByBin(list); // 序列化的方式深拷贝

            //把原对象改掉
            foreach (var item in list)
            {
                item.Name = "update";
            }

            //分别打印两个对象
            System.Diagnostics.Debug.WriteLine("打印list");
            foreach (var item in list)
            {
                System.Diagnostics.Debug.WriteLine(item.Name);
            }
            System.Diagnostics.Debug.WriteLine("打印newlist");
            foreach (var item in newlist)
            {
                System.Diagnostics.Debug.WriteLine(item.Name);
            }
            System.Diagnostics.Debug.WriteLine("打印deepcopylist");
            foreach (var item in deepcopylist)
            {
                System.Diagnostics.Debug.WriteLine(item.Name);
            }
        }