How do I clone a generic list in C#?

前端 未结 26 2782
失恋的感觉
失恋的感觉 2020-11-22 01:27

I have a generic list of objects in C#, and wish to clone the list. The items within the list are cloneable, but there doesn\'t seem to be an option to do list.Clone()

26条回答
  •  南方客
    南方客 (楼主)
    2020-11-22 02:05

        public List Clone(List o1List) where TEntity : class , new()
        {
            List retList = new List();
            try
            {
                Type sourceType = typeof(TEntity);
                foreach(var o1 in o1List)
                {
                    TEntity o2 = new TEntity();
                    foreach (PropertyInfo propInfo in (sourceType.GetProperties()))
                    {
                        var val = propInfo.GetValue(o1, null);
                        propInfo.SetValue(o2, val);
                    }
                    retList.Add(o2);
                }
                return retList;
            }
            catch
            {
                return retList;
            }
        }
    

提交回复
热议问题