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