我使用(ElementAt,Count)和(foreach)遍历一个IEnumerable作为Linq查询的结果。令我惊讶的是,性能差异是25-30倍!为什么会这样呢?IEnumerable<double> result = ... returns aboutint i = 0; i < result.Count(); i++ ) total += result.ElementAt(i);
我很好奇是什么限制使得设计决定不让HashSet能够使用LINQ的ForEach查询。这两个实现在幕后真正发生了什么不同的事情:foreach( var item in myHashSet ) { do.Stuff();}var myHashSet = new HashSet<T>;我很确定这仅仅是因为HashSet没有