protected void UpdatePercentage(LeaderboardScore score) { // find new percentage LeaderboardPercentage percentage = null; foreach (var item in cachedPercentages) { if (percentage.lowerBorder < score.score) { score.percentage = item; } } }
public void UpdateCache() { // Sort scores // needs using System.Linq; var result = scores.OrderBy((arg) => arg.Value.score); var playerInOneStep = scores.Count / 100; // Calcualte and store the percentage cache for (int i = 0; i < 100; i++) { LeaderboardPercentage percentage = cachedPercentages[i]; percentage.percentage = i + 1; percentage.lowerBorder = scores.ElementAt(playerInOneStep * i).Value.score; percentage.upperBorder = scores.ElementAt(playerInOneStep * (i + 1)).Value.score; percentage.playerCount = playerInOneStep; } }