首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#为什么可能出现多个枚举是错误的?

C#为什么可能出现多个枚举是错误的?
EN

Stack Overflow用户
提问于 2021-10-19 09:32:50
回答 3查看 141关注 0票数 1

Visual Studio在IEnumerable上给出警告" warning : Possible multiple enumerations“。然后我将ToList()添加到其中。但我开始怀疑为什么这是一种糟糕的做法。

那么为什么多次枚举是不好的呢?

EN

Stack Overflow用户

发布于 2021-10-19 09:34:54

实际上,您在代码中对集合进行了两次循环,这就是为什么会收到ReSharper警告。

例如,在使用数据库调用返回的IEnumerable时,这意味着要获取两次数据,这会减慢应用程序的速度&导致不必要的数据库加载。为什么要两次获取数据呢?

如果在内存中使用enumerable,则根据集合的大小,对集合进行多次枚举的开销也可能非常大。

使用.ToList()可以解决错误,因为它通过将IEnumerable转换为列表(也可以通过使用ToArrayIEnumerable转换为数组来强制执行此操作),在变量初始化点强制枚举。

IEnumerable集合中的数据也可能在不同的枚举之间发生变化,因此最好在需要数据保持不变的地方强制进行枚举(每次循环时,枚举表中的项可能都不同)。

由JetBrains自己创建:Code Inspection: Possible multiple enumeration of IEnumerable

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69628386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档