Esempio n. 1
0
 private void Collate()
 {
     foreach (var group in progressions.GroupBy(x => x.stride))
     {
         foreach (var a in group)
         {
             foreach (var b in group)
             {
                 if (a.Last() == b.First())
                 {
                     var collated = new Progression(group.Key);
                     collated.AddRange(a);
                     collated.AddRange(b.Skip(1));
                     collated.Sort();
                     collated.extended = a.extended || b.extended;
                     progressions.Add(collated);
                     progressions.Remove(a);
                     progressions.Remove(b);
                 }
             }
         }
     }
 }