The best way is to use OrderBy method of Linq, if you only need to compare by certain fields individually.
No need to use complicated design patterns, or to write separate comparator classes.
I also suggest you to review and follow C# coding style recommendations:
- class names and public field and method names should generally start with capital letter
- variable names start with lowercase
If you follow the same pattern as every other developer, your code will be easier to read (and comment) for everyone.
Another suggestion, regarding your code: when you need to switch between a finite and limited set of options, defining an enum is usually a better idea than using strings.
Anyway here is my own suggested implementation: