IEnumerable 和 IEnumerator

2023-12-25

谁能向我解释一下 IEnumerable 和 IEnumerator 之间有什么区别, 以及如何使用它们?

谢谢!!!


一般来说,一个IEnumerable是一个可以枚举的对象,例如列表或数组。一个IEnumerator是一个存储枚举状态的对象。

它们不是一个且相同的原因是,即使在单线程应用程序中,您也可以同时对同一对象进行多个枚举。例如,考虑以下代码:

foreach (x in mylist)
{
    foreach (y in mylist)
    {
        if (x.Value == y.Value && x != y)
        {
            // Found a duplicate value
        }
    }
}

这会很好地工作,如果mylist是一个正确的实施IEnumerable,但如果mylist返回自身作为枚举器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IEnumerable 和 IEnumerator 的相关文章

随机推荐

  • OpenCV中如何对复数矩阵求逆?

    我在做复杂矩阵的逆时遇到麻烦 据我所知 复杂矩阵只是一个双通道矩阵 CV 32FC2 CV 64FC2 假设我有一个矩阵 C Mat C 2 2 CV 64FC2 C at
  • 何时在 Ruby 中使用 `require`、`load` 或 `autoload`?

    我理解之间的细微差别require load and autoload在 Ruby 中 但我的问题是 你怎么知道使用哪一个 除了能够 包裹 load在匿名模块中 require似乎是首选 但是之后autoload允许您延迟加载文件 这听起来
  • 保持 Android 表格中所有行的列对齐

    我在 Android 上遇到了一个问题 无论我尝试什么都无法解决 想象一个表格布局 有 3 个表格行 每行有两个文本字段 Image 由于新用户限制 无法在此处添加图像 http imgim com tbl behaviour png 现在
  • 基于 Zend Framework 的项目

    在哪里可以看到具有漂亮架构的 ZF bssed 项目 数据映射器 服务等 这是一些应用程序 http www framework zend com wiki pages viewpage action pageId 14134 http w
  • 如何在GAE上设置中级证书?

    我为我的自定义域购买了 SSL 认证 并设置了我的 GAE 项目 在新的 Firefox 版本发布之前 它在大多数浏览器上都运行良好 Firefox 拒绝了我的 SSL 认证 我使用过 SSL Checker 它给了我反馈 并非所有网络浏览
  • 用于计费协议的 Paypal Webhook 收到付款了吗?

    是否有在收到计费协议付款时触发的 Webhook 我创建了一个计费计划 并让用户接受每月定期付款的计费协议 当计费协议执行时 webhookBILLING SUBSCRIPTION CREATED fires 是否有一个 webhook 在
  • 对多个文件运行 Excel 宏

    我有一个 Excel 宏保存在一个空白工作簿和多个数据工作簿中 目前 我分别打开宏文件和每个数据文件 并使用键盘快捷键在每个文件上运行宏 有没有一种方法可以在所有数据工作簿上运行宏而无需打开它们 或者使用 一个批处理文件 VBA VBScr
  • Google 地图 - 获取区域/邻里的多边形边界

    我想在 Google Maps API v3 上进行简单搜索 并得到带有彩色多边形的地图 如下图所示 搜索 皮涅罗斯 圣保罗 我通过使用得到它维基地图 http WikiMapia org data 步骤是 Open 维基地图 http W
  • 如何仅列出两次提交之间更改的文件名

    我在存储库中有一堆提交 我想查看两次提交之间更改的文件列表 来自SHA1 to SHA2 我应该使用什么命令 git diff name only SHA1 SHA2 您只需要包含足够的 SHA 哈希来识别提交 SHA 的顺序并不重要 输出
  • 如何使用 BertForMaskedLM 或 BertModel 来计算句子的困惑度?

    我想使用 BertForMaskedLM 或 BertModel 来计算句子的困惑度 所以我编写了这样的代码 import numpy as np import torch import torch nn as nn from transf
  • 创建一个链接,可在任何设备上打开相应的地图应用程序,并提供前往目的地的路线

    我宁愿认为这并不难找到 但看起来像您所期望的那样 找到一篇很棒的跨设备文章并不容易 我想创建一个链接 打开移动设备的浏览器并浏览谷歌地图 或者打开地图应用程序 Apple 地图或谷歌地图 并直接开始路线 即 从当前位置开始 在给定点结束 纬
  • 使用 CouchDB 的 jquery.couch.js?

    Here http blog couchone com post 1027100082 whats new in couchdb 1 0 part 4 securityn stuff http blog couchone com post
  • org.hibernate.exception.SQLGrammarException:无法插入[com.sample.Person]

    我正在尝试建立一个我发现的 Hibernate 小型工作样本here http www mastertheboss com hibernate 182 hibernate tutorial html但是 当我运行代码时 出现以下错误 Exc
  • C# 中的验证框架?

    在java世界里有bean验证框架JSR 303 http download oracle com otndocs jcp bean validation 1 0 fr oth JSpec 这是一个经过深思熟虑的策略 用于在应用程序的表示层
  • 迭代数组并等待 Promise

    如何使用 Promises 迭代数据数组并返回数据 我已经看到了一些 Promise push asyncFunc 方法 但是我的数组中的一些条目将失败 因此根据我收集的信息 我无法使用它 var filesFromDisk 41679 4
  • 在 R 中查找某个范围内的值

    我的数据如下所示 我想选择大于 等于 35 且小于 等于 350 的值 我还想将这些值替换为withinrange value 1 35 36 37 350 355 3555 35555 要选择值 value value gt 35 val
  • Docker pull 给出了来自字节范围请求的预期 HTTP 206

    我在从我们的现场 proget 服务器提取 docker 镜像时遇到问题 这一直有效 但我已经离开它大约两个月了 我跑 docker pull proget docker myimage 几层已完成 拉取完成 但最大的一层给出了 来自字节范
  • 是否可以使用 DI 容器解析我的 ClaimsAuthorizationManager

    我已经让我的自定义 ClaimsAuthorizationManager 使用标准配置文件设置工作 但我想将业务层服务注入到我的实现中 但我无法弄清楚
  • Xcode 13 beta:“xcrun:错误:无法找到‘仪器’”

    请注意 我在找 Applications Xcode app Contents Developer usr bin instrumentsutil 小写 而不是Instruments应用程序可以在以下位置找到 Xcode app Conte
  • IEnumerable 和 IEnumerator

    谁能向我解释一下 IEnumerable 和 IEnumerator 之间有什么区别 以及如何使用它们 谢谢 一般来说 一个IEnumerable是一个可以枚举的对象 例如列表或数组 一个IEnumerator是一个存储枚举状态的对象 它们