Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/19/10 02:15:10 (14 years ago)
Author:
swagner
Message:

Operator architecture refactoring (#95)

  • worked on operators and SGA
  • improved performance
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Core/3.3/ItemCollection.cs

    r2790 r2830  
    2121
    2222using System;
     23using System.Linq;
    2324using System.Collections;
    2425using System.Collections.Generic;
     
    5657    public ItemCollection() : base() { }
    5758    public ItemCollection(int capacity) : base(capacity) { }
    58     public ItemCollection(IEnumerable<T> collection) : base(collection) { }
     59    public ItemCollection(IEnumerable<T> collection) : base(collection) {
     60      foreach (T item in this)
     61        item.Changed += new ChangedEventHandler(Item_Changed);
     62    }
    5963
    6064    public object Clone() {
     
    6266    }
    6367
    64     public IDeepCloneable Clone(Cloner cloner) {
    65       List<T> items = new List<T>();
    66       foreach (T item in this)
    67         items.Add((T)cloner.Clone(item));
    68       ItemCollection<T> clone = (ItemCollection<T>)Activator.CreateInstance(this.GetType(), items);
     68    public virtual IDeepCloneable Clone(Cloner cloner) {
     69      ItemCollection<T> clone = (ItemCollection<T>)Activator.CreateInstance(this.GetType(), this.Select(x => (T)cloner.Clone(x)));
    6970      cloner.RegisterClonedObject(this, clone);
    7071      return clone;
Note: See TracChangeset for help on using the changeset viewer.