2013-05-18 48 views
1

我有以下代码:看看有多少时间集合内的值出现在dictonary

private Dictionary<string, user> totalUsers = new Dictionary<string, user>(); 

用户类型有例如一些值,其中1位名单,

  totalUsers[User].totalUsers.Add(killedPlayers); 
      totalUsers[User].totalUsers.Add("Test"); 
      totalUsers[User].totalUsers.Add(killedPlayers); 
      totalUsers[User].totalUsers.Add(killedPlayers); 

我想做的事就是指望有多少次“visitPlayer”值内writen,

我可以那么用这样的代码,

  foreach (string name in totalUsers[User].killedPlayers) 
      { 
       if (name == dyingPlayer) 
       { count += 1; } 
      } 

但有没有办法做到这一点,而无需与foreach循环?

谢谢。

回答

4

totalUsers[User].killedPlayers.Count(name => name == dyingPlayer)

+0

语法不同,但其基本一致 – maxlego

+0

这将是明智的性能或相同的更好吗? – Dan272

+0

同样的表现。但是,它将被延期执行。 –

2
var groups = YourData.GroupBy(item => item.name).Select(n => new 
     { 
      name= n.Key, 
      count = n.Count() 
     }; 
相关问题