Day5---C# listA 克隆 listB

listA =listB 时,不管listA  或者listB 修改了,2个都会同时修改,需要用克隆的方式

listA =clone(listB);

 

 public static List<T> Clone<T>(this List<T> list) where T : new()
        {
            List<T> items = new List<T>();
            foreach (var m in list)
            {
                var model = new T();
                var ps = model.GetType().GetProperties();
                var properties = m.GetType().GetProperties();
                foreach (var p in properties)
                {
                    foreach (var pm in ps)
                    {
                        if (pm.Name == p.Name)
                        {
                            pm.SetValue(model, p.GetValue(m));
                        }
                    }
                }
                items.Add(model);
            }
            return items;
        }

 

posted @ 2019-11-18 12:23  落风无痕  阅读(226)  评论(0)    收藏  举报