计算玩家WinLoss百分比

时间:2012-07-20 18:43:33

标签: c# .net linq

我需要根据玩家的表现渲染一个胜利损失图表,我希望有人会有类似计算的经验。

所以这就是我所拥有的:

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;
}

提前感谢您的帮助。

1 个答案:

答案 0 :(得分: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);
}

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

相关问题