I have a SortedDictionary where I am holding points of a particular player and his name next to it. What I need to do is to sort this in a descending order so that I have the winner in the first position of the dictionary. How can I do that?
Also, how can I get an item from the list without knowing the key?
SortedDictionary<int, string> dict = new SortedDictionary<int, string>();
dict.Add(player1Pts, playerNames[0]);
dict.Add(player2Pts, playerNames[1]);
dict.Add(player3Pts, playerNames[2]);
Thanks for any help!
It doesn't really make sense to use a dictionary with the score as the key: the key must be unique, so it will fail if two players have the same score.
Instead, you should create a Player
class that contains the name and score, and store Player
objects in a List<Player>
. If you need to sort the players by score, you can call Sort
on the list with a custom comparer, or just order the result with Linq:
foreach (Player player in players.OrderByDescending(p => p.Score))
{
// Do something with player
}