Bonjour à tous,

je souhaite donc trier les valeurs d'un dictionnaire, valeurs que je charge à l'aide d'un fichier xml

j'ai créé une classe pour lire mon fichier xml et mettre les valeurs dans un dictionnaire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    class Highscores
    {
        string name;
        int score;
        XmlDocument xmlDoc = new XmlDocument();
        Dictionary<String, int> mHighscores;
 
        public Highscores(string allScores)
        {
            mHighscores = new Dictionary<string,int>();
            Stream stream = File.OpenRead(allScores);
            xmlDoc.Load(stream);
            XmlNodeList nodeList = xmlDoc.GetElementsByTagName("Player");            
            for (int i = 0; i < nodeList.Count; i++)
            {
                XmlNodeList childNodes = nodeList[i].ChildNodes;
                name = childNodes[0].InnerText;
                score = System.Int16.Parse(childNodes[1].InnerText);
 
                mHighscores.Add(name, score);                
            }
        }
 
        public Dictionary<String, int> RankScores            
        {
            get
            {
                return this.mHighscores;
            }
        }
    }
puis dans l'étape suivante je créé mon objet highscore, c'est ici qu'il faudrait trier les valeurs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
                int incr = 0;
                Highscores scores = new Highscores(cheminduXML);                
                foreach (KeyValuePair<string, int> s in scores.RankScores)
                {
                    mSpriteBatch.DrawString(spriteFont3, s.Key, new Vector2(mScore.Width / 2 - 120, mScore.Height / 2 - 90 + incr * 20), Color.White);
                    mSpriteBatch.DrawString(spriteFont3, s.Value.ToString(), new Vector2(mScore.Width / 2 + 100, mScore.Height / 2 - 90 + incr * 20), Color.White);
                    incr++;
                }
j'ai cru voir qu'il fallait implémenter une classe ISortable mais j'ai pas trouvé d'exemple concret pour donner quelque chose du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
scores.RankScores.values.sort();
Avez-vous une piste?

Merci XD