我有一个列表,可以包含同一个对象的多次出现.现在我需要计算,列表中包含给定对象的频率.
int count = 0;
foreach (IMyObject item in myList)
  if (item == object2Count)
    count++;
Run Code Online (Sandbox Code Playgroud)
我确信这可以通过LINQ更好地完成,但LINQ对我来说仍然是一个谜.
我的第一个问题是:如何通过LINQ计算对象和第二个问题:这个LINQ版本会更慢还是更快?我使用的是ObservableCollection,列表中的项目数量通常相当小......通常不超过20.
先谢谢你,
弗兰克
Mar*_*age 11
您可以使用Count扩展方法轻松计算集合中的对象.或者:
var count = myList.Where(item => item == object2Count).Count();
Run Code Online (Sandbox Code Playgroud)
要么
var count = myList.Count(item => item == object2Count);
Run Code Online (Sandbox Code Playgroud)
关于性能,它应该与foreach循环相同.
(你的谓词item == object2Count看起来有点奇怪,但这与关于如何计算集合中的对象的问题无关.)
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           30120 次  |  
        
|   最近记录:  |