I need to sort a highscore file for my game I\'ve written.
Each highscore has a Name, Score and Date variable. I store each one in a List.
Here is the struct tha
This will sort the list with the highest scores first:
IEnumerable<Highscore> scores = GetSomeScores().OrderByDescending(hs => hs.Score);
var sortedList = yourList.OrderBy(x => x.Score);
or use OrderByDescending
to sort in opposite way
I don't know why everyone is proposing LINQ based solutions that would require additional memory (especially since Highscore is a value type) and a call to ToList() if one wants to reuse the result. The simplest solution is to use the built in Sort method of a List
list.Sort((s1, s2) => s1.Score.CompareTo(s2.Score));
This will sort the list in place.
List<Highscore> mylist = GetHighScores();
var sorted = mylist.OrderBy(h=>h.Score);
Use LINQ:
myScores.OrderBy(s => s.Score);
Here is a great resource to learn about the different LINQ operators.