7
當我有一個IEnumerable<SomeClass>
從中我不知道它是否列表(根據List<T>
),我必須枚舉IEnumerable
以確保我沒有枚舉該枚舉兩次(如循環它兩次,或類似的東西)。正在轉換爲IList,然後調用ToList()時比空ToList()更好嗎?
ReSharper的警告我,IEnumerable的可能的多個枚舉 - 這是很好的,有時候你忘記它 - 讓你選擇快速修復:
- 枚舉數組
- 枚舉列出
當我選擇Enumerate列表時,resharper引入了一個局部變量,並按如下方式分配IEnumerable(示例):
var enumeratedItems = items as IList<SomeClass> ?? items.ToList();
現在我的問題是:
爲什麼不簡單地做items.ToList();
?
首先嚐試投射到IList<SomeClass>
的優點是什麼?
哦,我明白了,很有道理!謝謝 :) – Mafii