Stable Sort

This class provides stable sort for the IList<T>, that is, if two elements are equal, their order will be preserved. A default List<T>.Sort() implementation performs an unstable sort: order might not preserved for elements that are equal.

StableSort.Sort(list, (a, b) => a.Field.CompareTo(b.Field), reverse: false);