What should IComparer return to indicate "keep the existing sort order"
(Credit for this answer goes to Lee)
It depends on whether or not the algorithm used to do the sorting is stable. For example, the OrderBy is stable and so returning 0 from Compare
will mean that the two items retain their original order in the list, however List.Sort is not, and so returning 0 from Compare
doesn't guarentee that the two items will be in their original order in the sorted output.