zoukankan      html  css  js  c++  java
  • List<T> 深度拷贝

            /// <summary>
            /// 不带[Serializable]标识的深度拷贝
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="obj"></param>
            /// <returns></returns>
            public static T DeepCopy<T>(this T obj) where T : class
            {
                object retval = null;
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    System.Xml.Serialization.XmlSerializer xml = new System.Xml.Serialization.XmlSerializer(typeof(T));
                    xml.Serialize(ms, obj);
                    ms.Seek(0, System.IO.SeekOrigin.Begin);
                    retval = xml.Deserialize(ms);
                    ms.Close();
                }
                return (T)retval;
            }
    
            /// <summary>
            /// 带有[Serializable]标识的深度拷贝
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="obj"></param>
            /// <returns></returns>
            public static List<T> Clone<T>(this List<T> obj) where T : class
            {
                using (System.IO.Stream objectStream = new System.IO.MemoryStream())
                {
                    System.Runtime.Serialization.IFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                    formatter.Serialize(objectStream, obj);
                    objectStream.Seek(0, System.IO.SeekOrigin.Begin);
                    return formatter.Deserialize(objectStream) as List<T>;
                }
            }
  • 相关阅读:
    HTML5基础内容(二)
    JavaScript逻辑运算符
    JavaScript自增运算符和自减运算符
    JavaScript算数运算符和一元运算符
    CSS分页
    HTML和CSS遇到的细节问题
    JavaScript数据类型转换
    JavaScript标识符
    HTML5基础知识汇总(一)
    CSS颜色透明度
  • 原文地址:https://www.cnblogs.com/honk/p/14461188.html
Copyright © 2011-2022 走看看