C# 计算玩家输赢百分比
我需要根据球员的表现绘制一张损益表,我希望有人能有类似的计算经验 这就是我所拥有的:C# 计算玩家输赢百分比,c#,.net,linq,C#,.net,Linq,我需要根据球员的表现绘制一张损益表,我希望有人能有类似的计算经验 这就是我所拥有的: public class Player { public virtual bool IsWinner { get; set; } } //Sample list var listOfPlayers = new List<Player> { new P
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 }
};
公共类播放器
{
公共虚拟bool IsWinner{get;set;}
}
//样本清单
var listOfPlayers=新列表
{
新玩家{IsWinner=true},
新玩家{IsWinner=false},
新玩家{IsWinner=false},
新玩家{IsWinner=true},
新玩家{IsWinner=true},
新玩家{IsWinner=false},
新玩家{IsWinner=true}
};
球员列表来自数据库,基本上列表中的每个球员都属于不同的比赛
因此,我有一个函数,其中我提供了玩家列表和列表中相应的索引:
比如说,在索引2中,我有一场赢,两场输,因为我正在绘制一张图表,所以我需要这个函数返回一个双精度值,它将代表赢/输百分比(玩家在0-3场比赛中赢了25%)
public double CalculateWinLossPercentage(层列表,整数索引)
{
双winpercentage=null;
//根据球员总名单计算获胜百分比
//和列表中的当前索引
收益率;
}
提前感谢您的帮助。public double CalculateWinLossPercentage(层列表,整数索引)
public double CalculateWinLossPercentage(List<Player> listOfPlayers,int index)
{
int count = listOfPlayers.GetRange(0, index + 1).Count(p => p.IsWinner);
return ((double)count)/(index+1);
}
{
int count=listOfPlayers.GetRange(0,索引+1).count(p=>p.IsWinner);
返回((双)计数)/(索引+1);
}
这将以双精度(0到1之间的数字)返回百分比。
另外,在您的示例中,如果index=2,正确的结果将是33.3%,而不是25%。public double-CalculateWinLossPercentage(列表层,int-index)
{
int count=listOfPlayers.GetRange(0,索引+1).count(p=>p.IsWinner);
返回((双)计数)/(索引+1);
}
这将以双精度(0到1之间的数字)返回百分比。
另外,在您的示例中,如果索引=2,正确的结果将是33.3%,而不是25%。我们如何知道哪些记录对应于哪个玩家?现在你的例子似乎有七个不同的玩家,每一个都有一场胜利或一场失败。你有什么理由不只是保持整数totalWins和整数Totalosses,在每场比赛后更新它们,并做基本的数学计算?一胜二负,25%,0-3你的示例数学没有意义道歉,表示有点误导,最初我只有一个球员ID,数据库中的数据组织方式是球员在球员表中多次保存,因为一名球员可能属于不同的比赛。最初,我有一个玩家GUIID,我在player表中查询具有特定GUIID的所有玩家,它会返回一个玩家列表,每个玩家都在特定的比赛中赢过/输过。所以我需要在指数的基础上得到一个百分比,这才是真正的比赛。在这个例子中,7场比赛,我需要根据提供的比赛(例如3场)赢得%的胜利。这没有什么意义。玩家有一个GUIID,但搜索特定的GUIID会返回一个玩家列表?我们如何知道哪些记录对应于哪个玩家?现在你的例子似乎有七个不同的玩家,每一个都有一场胜利或一场失败。你有什么理由不只是保持整数totalWins和整数Totalosses,在每场比赛后更新它们,并做基本的数学计算?一胜二负,25%,0-3你的示例数学没有意义道歉,表示有点误导,最初我只有一个球员ID,数据库中的数据组织方式是球员在球员表中多次保存,因为一名球员可能属于不同的比赛。最初,我有一个玩家GUIID,我在player表中查询具有特定GUIID的所有玩家,它会返回一个玩家列表,每个玩家都在特定的比赛中赢过/输过。所以我需要在指数的基础上得到一个百分比,这才是真正的比赛。在这个例子中,7场比赛,我需要根据提供的比赛(例如3场)赢得%的胜利。这没有什么意义。玩家有一个GUIID,但是搜索特定的GUIID会返回一个玩家列表?
public double CalculateWinLossPercentage(List<Player> listOfPlayers,int index)
{
int count = listOfPlayers.GetRange(0, index + 1).Count(p => p.IsWinner);
return ((double)count)/(index+1);
}