Interesting method. (Though not working, at least not the way you use it.)
I got a couple of questions:
1. Why do you do:
Code:
int count = (Damage.Count > 0) ? (Damage.Count > 5) ? 5 : Damage.Count : 0;
You don't need at least 5 competitors to be able to chose the top 5(at least one is needed to be able to win the GW war).
2. Why use Linq.Aggregate?
I mean it just gives one value, one at a time using the given compare function, but, the way you do it, it will give you the same result all the time (as in one value only...).
I, myself, use the SortedDictionary but you can use directly Damage.OrderBy(p => p.Value.Score);
PHP Code:
private static List<string> SelectTopFive()
{
List<string> List = new List<string>();
var array = Damage.OrderBy(p => p.Value.Score);
for (int i = 0; i < Math.Min(array.Length, 5); i++)
List.Add(array[i].Value.Guild.Name);
return List;
}