首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

foreach, 用还是不用,这是一个问题~

enumerator = list.GetEnumerator()) { while (enumerator.MoveNext()) { int current = enumerator.Current...this.Func(current); } }   初看上去似乎没有什么申请内存的地方,但是注意到这里using的使用,其最后会通过IDisposable接口调用Dispose,但是由于List的Enumerator...也会产生40字节的GC Alloc,同样的看下转换后的代码: // ForeachTest private void ForeachArrayList() { using (IEnumerator enumerator...= this.m_arrayList.GetEnumerator()) { while (enumerator.MoveNext()) { object current = enumerator.get_Current...foreach List是不同的,foreach List如上面所说,是由于装箱操作而引起的GC Alloc,但是foreach ArrayList则是由于GetEnumerator,因为ArrayList的Enumerator

1.4K11
领券