1. List
1. 上記のメソッドを使用してコピーできるのは、List 内のオブジェクトへの参照のみです。次の拡張メソッドを使用してコピーします。
List<T> oldList = new List<T>(); oldList.Add(..); List<T> newList = new List<T>(oldList);
static class Extensions { public static IList<T> Clone<T>(this IList<T> listToClone) where T: ICloneable { return listToClone.Select(item => (T)item.Clone()).ToList(); } //当然前题是List中的对象要实现ICloneable接口 }
3. ディープ システムをテストします。上記のオブジェクトのコピー
テストは次のとおりです:
public static T Clone<T>(T RealObject) { using (Stream objectStream = new MemoryStream()) { //利用 System.Runtime.Serialization序列化与反序列化完成引用对象的复制 IFormatter formatter = new BinaryFormatter(); formatter.Serialize(objectStream, RealObject); objectStream.Seek(0, SeekOrigin.Begin); return (T)formatter.Deserialize(objectStream); } }
上記の記事では、C# の List オブジェクトのディープ コピーの問題について簡単に説明していますが、エディターによって共有されるすべての内容です。参考になれば幸いです。また、皆さんも PHP 中国語 Web サイトをサポートしていただければ幸いです。
C# の List