Well the problem is that the sorting methods are treating them as just strings, so they are sorted alphabetically (the default comparison for strings). You need to turn them into actual days of the week (which is an enum ( a number)).
To convert into a DayOfWeek
enum:
public static DayOfWeek ToDayOfWeek(string str) {
return (DayOfWeek)Enum.Parse(typeof(DayOfWeek), str);
}
Then you can just sort them using the built-in functions.
I like LINQ:
String[] weekdayArray = {"Monday", "Saturday", "Wednesday", "Tuesday", "Monday", "Friday"};
var daysOfWeek = weekdayArray
.Select(str => ToDayOfWeek(str))
.OrderBy(dow => dow);
Here is a .NET Fiddle.