【发布时间】:2020-08-23 15:36:03
【问题描述】:
最近我们开始在 Visual Studio 中使用 sonarLint 插件来提高代码质量和覆盖率。之后,我们收到了用 ASEnumerable 替换 Tolist() 的建议。
错误文本:如果您使用的是 LINQ to Entities,请放弃对“ToList”的无用调用或将其替换为“AsEnumerable”。
它给出异常的对象是使用 dapper 获取的,它的数据类型是 IEnumerable。
【问题讨论】:
-
AsEnumerable是一个simple cast,而ToList将在内存中创建List<T>。以前的操作只需要一个演员表,它已经是IEnumerable并且没有延迟(必须不延迟)。所以除非你想使用List<T>功能(例如添加/删除项目)ToList调用是多余的。