如何从列表中打印不同的名称?

时间:2014-04-02 16:08:33

标签: c# linq linqpad

以下是我的游戏玩家列表以及他们喜欢的游戏:

  

播放器1:魔兽,RS,MS

     

播放器2:AQ,CoD,LoL,RS

     

播放器3:D3,马里奥,魔兽世界

     

player4:LoL,MS

列表属性为public List<string> Games { get; set; }

现在这就是我在代码中尝试的内容

var result = Gamer.GetGamer()
                  .Select(x => x.Games)
                  .Distinct()
                  .Dump("List of Different Games Played");

GetGamer()方法返回游戏玩家列表。

现在问题在于它会显示游戏列表但会重复而不是具有不同的值。

我真正想要的是正在播放的不同游戏的总数。如何在不重复的情况下显示它们?

1 个答案:

答案 0 :(得分:3)

使用SelectMany代替Select

Gamer.GetGamer()
     .SelectMany(x => x.Games)
     .Distinct()
     .Dump();

如果您希望获得Count,请在Count之后添加Distinct