展望的method迭代IEnumerable <T>。最好的辦法?
void InsertRange(int index, IEnumerable<T> collection)
實施在列表<>類(.NET框架4.5.2),我可以看到一個迭代一個集合這樣
using(IEnumerator<T> en = collection.GetEnumerator()) {
while(en.MoveNext()) {
Insert(index++, en.Current);
}
}
我想知道什麼可能是更喜歡這種語法的原因
foreach(var item in collection)
{
Insert(index++, item)
}
我已經創建了一個程序集與兩個方法每一個使用不同的方法。然後,查看生成的IL代碼,我可以看到兩種方法都調用通過執行IEnumerator<T>
執行的Dispose方法,因此調用IDisposable
。因此IDisposable
不是原因,這是我的問題。
除了簡單樣式(ish)首選項之外,是否有任何理由更喜歡一種語法與另一種語法?
的foreach的背後場景列舉你看到的實現方式, –