当前位置:  开发笔记 > 编程语言 > 正文

正在转换为IList,然后调用ToList()时null比普通ToList()更好?

如何解决《正在转换为IList,然后调用ToList()时null比普通ToList()更好?》经验,为你挑选了1个好方法。

当我有一个IEnumerable我不知道它的列表与否(就其而言List)时,我必须列举IEnumerable以确保我不会枚举两次可枚举(例如循环两次,或类似的东西)那).

Resharper警告我可能多次枚举IEnumerable - 这很好,有时你会忘记它 - 并允许你选择quickfixes:

枚举到数组

枚举列表

当我选择Enumerate列表时,resharper引入了一个局部变量,并按以下方式分配IEnumerable(示例):

  var enumeratedItems = items as IList ?? items.ToList();

现在我的问题是:

为什么不简单items.ToList();呢?

尝试施展到IList第一位的优势是什么?



1> YuvShap..:

也许这IEnumerable已经是一个列表,在这种情况下,调用ToList()只会从现有的列表中创建一个新列表,所以在执行之前,resharper建议首先尝试将其强制转换以检查它是否是一个IList并且仅在它不存在的情况下我们将执行ToList()有一些成本的操作.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有