I achieve this in this way
UnUsedServices = UnUsedServices.OrderBy(si => si.utility).ToList(); //order it ascendingly
UnUsedServices.Reverse();//reverse it
I just wonder is there a way to reverse it directly in descending order instead of splitting into two phases (sort ascending and reverse)?