相关疑难解决方法(0)

C#对象排名,多个标准

我正在为我编写的局域网方网站构建一个插件,允许使用Round Robin锦标赛.

一切进展顺利,但我有一些关于排名超过两个标准的最有效方法的问题.

基本上,我想要以下排名布局:

         Rank  Wins  TotalScore
PersonE  1     5     50
PersonD  2     3.5   37
PersonA  2     3.5   37
PersonC  4     2.5   26
PersonB  5     2.5   24
PersonF  6     0     12
Run Code Online (Sandbox Code Playgroud)

在SQL服务器中,我会使用:

SELECT
    [Person],
    RANK() OVER (ORDER BY Wins DESC, TotalScore DESC) [Rank],
    [Wins],
    [TotalScore]
Run Code Online (Sandbox Code Playgroud)

现在,我只有List,Dictionary等可以使用

特别:

Dictionary<TournamentTeam, double> wins = new Dictionary<TournamentTeam, double>();
Dictionary<TournamentTeam, double> score = new Dictionary<TournamentTeam, double>();
Run Code Online (Sandbox Code Playgroud)

有没有办法用LINQ做这种排名风格?

如果没有,是否有一种可扩展的方式可以让我以后考虑Win-Loss-Draw而不仅仅是胜利,如果我选择的话?

编辑:

我改编了TheSoftwareJedi的答案:

private class RRWinRecord : IComparable
{
    public int Wins { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-objects ranking

9
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×1

linq ×1

linq-to-objects ×1

ranking ×1