我需要根据玩家的表现绘制一个输赢图表,我希望有人有类似计算的经验。
这就是我所拥有的:
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 处,我有 1 胜 2 负,因为我正在渲染图表,我需要此函数返回一个代表赢/输百分比的 double 值,这样它就会有(玩家赢了 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;
}
预先感谢您的帮助。
最佳答案
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 之间的数字)。 此外,在您的示例中,索引 = 2 时,正确的结果将是 33.3%,而不是 25%。
关于c# - 计算玩家输赢百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11585196/