1

我需要根据玩家的表现绘制一个输赢图表,我希望有人会有类似计算的经验。

所以这就是我所拥有的:

public class Player
{
   public virtual bool IsWinner { get; set; }
}

//Sample list
var listOfPlayers = new List<Player>
                                  {
                                      new Player{ IsWinner = true },
                                      new Player{ IsWinner = false },
                                      new Player{ IsWinner = false },
                                      new Player{ IsWinner = true },
                                      new Player{ IsWinner = true },
                                      new Player{ IsWinner = false },
                                      new Player{ IsWinner = true }
                                  };

球员名单来自数据库,基本上名单中的每个球员都属于不同的比赛。

所以我有这个功能,我提供玩家列表和列表中的相应索引:

因此,例如,在索引 2 处,我有一场胜利和 2 场失败,因为我正在渲染一个图表,所以我需要这个函数返回一个双精度值,它代表赢/输百分比,因此它将具有(玩家赢得 25% 的比赛0-3)

public double CalculateWinLossPercentage(List<Player> listOfPlayers,int index)
{
    double winpercentage = null;
    //calculate win percentage base on the total list of players 
    //and the current index in list
    return winpercentage;
}

预先感谢您的帮助。

4

1 回答 1

4
public double CalculateWinLossPercentage(List<Player> listOfPlayers,int index)
{
    int count = listOfPlayers.GetRange(0, index + 1).Count(p => p.IsWinner);
    return ((double)count)/(index+1);
}

这会将百分比作为双精度值(0 到 1 之间的数字)返回。此外,在您的示例中,如果 index = 2,正确的结果将是 33.3%,而不是 25%。

于 2012-07-20T18:57:22.670 回答