排序字典并获得前3名

luc*_*opp 2 c# dictionary

我有一本存储"滑雪"锦标赛成员的字典.它还存储得分.我想要做的是能够找到并显示成员的前3个分数.我只是想知道当我陷入困境时,最好的办法是什么.以下是字典以及如何添加成员:

public static Dictionary<string, Skier> Skiers = new Dictionary<string, Skier>();

    static int income;


    string lodgeName;

    public SkiLodge(string newLodgeName)
    {
        newLodgeName = lodgeName;
        Skiers = new Dictionary<string, Skier>();
    }

    static int newNumber = 1;
    //ADD SKIER
    public Skier AddSkier(string inName, string inAddress, int inScore)
    {
        string newNumberString = newNumber.ToString();
        Skier result = new Skier(newNumberString, inName, inAddress, inScore);
        newNumber = newNumber + 1;
        Skier S = new Skier(newNumberString, inName, inAddress, inScore);
        Skiers.Add(newNumberString, S);
        income = income + 100;
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

Bru*_*uim 7

我假设您在Skier有一个名为Score的房产,在这里您如何实现目标.

    //Your dictionary must have at least 3 entries.
    var orderedTopThree = Skiers.OrderByDescending(s => s.Value.Score).Take(3);
Run Code Online (Sandbox Code Playgroud)