确定玩过最多游戏的玩家

Pro*_*ist 0 c# linq

我有一个包含球员号码的班级......

public class Game {
    public int blackPlayer { get; set; }
    public int whitePlayer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和......

List<Game> games;
Run Code Online (Sandbox Code Playgroud)

我想知道哪个玩家编号在列表中出现次数最多(无论他们是扮演黑人还是白人).有谁知道一个好的LINQ表达式吗?

Mat*_*ela 5

以下内容应该实现您的目标:

var q = (from g in games
        from p in new[] {g.blackPlayer, g.whitePlayer}
        group p by p into pgroup
        orderby pgroup.Count() descending
        select new { Player = pgroup.Key,  Count =  pgroup.Count() }).FirstOrDefault();


Console.WriteLine("Player # {0} played {1} times which is the most", q.Player,  q.Count);
Run Code Online (Sandbox Code Playgroud)