It makes absolutely no sense to do what you've done there. What do you gain by doing that over implementing IComparable? Nothing. What do you lose? The ability to compare two instances directly. The ability to sort an array. The ability to sort an existing List (your method does not sort the existing List but rather returns a new one). That is a very, VERY bad idea.