2012-07-20 34 views
1

我需要根據玩家的表現呈現一個贏球損失圖表,我希望有人會有類似的計算經驗。計算玩家WinLoss百分比

因此,這裏是我:

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負,因爲我渲染圖表我需要這個函數返回一個雙將代表輸/贏率,因此會(玩家贏得比賽0-3的25%)

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

我們如何知道哪些記錄對應哪個播放器?現在你的例子似乎有七個不同的玩家,每個玩家都有一個贏或輸。 – 2012-07-20 18:48:37

+0

是否有任何理由不只是保持int totalWins和int totalLosses,在每場比賽之後更新它們,並且進行基本的數學計算? – DGH 2012-07-20 18:48:59

+0

一勝2負,25%,0-3你的抽樣數學沒有意義 – Paparazzi 2012-07-20 18:55:24

回答

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之間的數字)。 另外,在你的例子中,索引= 2,正確的結果將是33.3%,而不是25%。