Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/24/14 15:16:59 (9 years ago)
Author:
bburlacu
Message:

#2276: Commit initial version of IDataset interface and code refactoring.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.DatasetRefactor/sources/HeuristicLab.Core/3.3/Collections/DirectedGraph/DirectedGraph.cs

    r11444 r11571  
    5656      : base(original, cloner) {
    5757      vertices = new HashSet<IVertex>(original.vertices.Select(cloner.Clone));
    58       arcs = new HashSet<IArc>(original.arcs.Select(cloner.Clone));
     58
     59      // this select preserves the arc order so they are added to the new cloned vertices exactly in the same order
     60      var originalArcs = original.Vertices.SelectMany(x => x.InArcs).Select(cloner.Clone);
     61      arcs = new HashSet<IArc>();
    5962
    6063      // add the arcs to the newly cloned vertices
    61       foreach (var arc in arcs) {
     64      foreach (var arc in originalArcs) {
     65        arcs.Add(arc);
    6266        arc.Source.AddArc(arc);
    6367        arc.Target.AddArc(arc);
     
    8185      }
    8286
    83       foreach (var arc in arcs) {
     87      foreach (var arc in arcs.OrderBy(x => x.Data != null)) {
    8488        var source = arc.Source;
    8589        var target = arc.Target;
Note: See TracChangeset for help on using the changeset viewer.