private static void AddOrderedNext(Level level) { if (level.Next != null) { List<KeyValuePair<string, Level>> orderedNext = new List<KeyValuePair<string, Level>>(level.Next); orderedNext.Sort((x, y) => { return y.Value.Total.CompareTo(x.Value.Total); }); level.OrderedNext = orderedNext; foreach (KeyValuePair<string, Level> item in level.Next) { AddOrderedNext(item.Value); } } }