我需要根据玩家的表现渲染一个胜利损失图表,我希望有人会有类似计算的经验。
所以这就是我所拥有的:
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;
}
提前感谢您的帮助。
答案 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%。