- Timestamp:
- 11/06/10 01:56:04 (14 years ago)
- Location:
- trunk/sources
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources
- Property svn:mergeinfo changed
/branches/CloningRefactoring (added) merged: 4656-4693,4696-4697,4711-4714,4718-4719
- Property svn:mergeinfo changed
-
trunk/sources/HeuristicLab.Core/3.3/Collections/KeyedItemCollection.cs
r4419 r4722 44 44 } 45 45 46 [StorableConstructor] 47 protected KeyedItemCollection(bool deserializing) : base(deserializing) { } 48 protected KeyedItemCollection(KeyedItemCollection<TKey, TItem> original, Cloner cloner) { 49 cloner.RegisterClonedObject(original, this); 50 foreach (TItem item in original.dict.Values) { 51 TItem clonedItem = cloner.Clone(item); 52 dict.Add(GetKeyForItem(clonedItem), clonedItem); 53 } 54 } 46 55 protected KeyedItemCollection() : base() { } 47 56 protected KeyedItemCollection(int capacity) : base(capacity) { } 48 57 protected KeyedItemCollection(IEnumerable<TItem> collection) : base(collection) { } 49 [StorableConstructor]50 protected KeyedItemCollection(bool deserializing) : base(deserializing) { }51 58 52 59 public object Clone() { 53 60 return Clone(new Cloner()); 54 61 } 55 public virtual IDeepCloneable Clone(Cloner cloner) { 56 KeyedItemCollection<TKey, TItem> clone = (KeyedItemCollection<TKey, TItem>)Activator.CreateInstance(this.GetType()); 57 cloner.RegisterClonedObject(this, clone); 58 foreach (TItem item in dict.Values) { 59 TItem clonedItem = (TItem)cloner.Clone(item); 60 clone.dict.Add(GetKeyForItem(clonedItem), clonedItem); 61 } 62 return clone; 63 } 62 public abstract IDeepCloneable Clone(Cloner cloner); 64 63 65 64 public new ReadOnlyKeyedItemCollection<TKey, TItem> AsReadOnly() {
Note: See TracChangeset
for help on using the changeset viewer.