为什么 ICollection 同时实现 IEnumerable 和 IEnumerable

2023-11-25

为什么ICollection<T>两者都实施IEnumerable<T> and IEnumerable?

这样做的目的是什么?如何IEnumerable益处ICollection<T>?


IEnumerable<T>其本身迫使任何实现也实现非通用IEnumerable。这是安全的,出于同样的原因IEnumerable<out T>从 .NET 4 开始是协变的...您始终可以转换T to object对于非通用形式。

基本上这意味着如果您有使用类型参数的代码IEnumerable,你仍然可以用类似的方式调用它List<T>.

埃里克·利珀特写了一篇最近发表的博客文章关于为什么集合最终会实现许多接口,Brad Abrams 写了一篇2005 年的博客文章关于具体的IEnumerable<T>/IEnumerable决定。

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

为什么 ICollection 同时实现 IEnumerable 和 IEnumerable 的相关文章

  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的
  • 使用 GhostScript.NET 打印 PDF DPI 打印问题

    我在用GhostScript NET http ghostscriptnet codeplex com打印 PDF 当我以 96DPI 打印时 PDF 打印效果很好 但有点模糊 如果我尝试以 600DPI 打印文档 打印的页面会被极大地放大

随机推荐

  • 如何在 Flutter WebView 中将数据发布到 URL

    我想将一些数据发布到 Flutter WebView 中的 URL 主体 那么 我该怎么做呢 webview flutter目前没有发送帖子请求的方法 不过 你可以试试我的flutter inappwebview插入 它支持POST请求 使
  • Vue.js - 在 v-for 中使用过滤器

    我有一个简单的 Vue 过滤器 它将数组的长度限制为 n 个元素 像这样使用它效果很好 array limitArray 2 现在我想在里面使用它v for循环 像这样 li li 但这会引发错误 如何在内部使用过滤器v for 编辑 可能
  • like 子句 JPQL 中的参数

    我正在尝试使用 like 子句编写 JPQL 查询 LIKE code 我想要 code 4 并找到 455 554 646 我无法通过 code value namedQuery setParameter this value 因为在另一
  • Android studio git 使用私钥

    A 有一个 git 仓库的地址 我还有一个 open ssh 格式的私钥 Android Studio中的git可以使用吗 我尝试搜索一些信息 但目前没有运气 感谢您提供任何有用的信息 Edit My steps 1 I put my pr
  • Bing图片搜索分页-无限滚动

    当你在Bing搜索引擎上搜索图片时 结果显示如下 http www bing com images search q stack overflow 请注意 您如何不断滚动并滚动 并且没有 正常 分页 我的问题是 他们是如何做到这一点的 我可
  • 核心转储文件名使用 core_pattern %e.%p.core 获取线程名称而不是可执行文件名称

    我最近开始使用 pthread setname np 在我的应用程序中设置一些线程名称 执行此操作后 如果指定线程之一内发生崩溃 则核心转储文件名将获取线程名称 而不是 core pattern e p core 的可执行文件名称 根据核心
  • localStorage - 清除()或removeItem()?

    我应该使用clear 抹去一切localStorage 或者我应该手动removeItem 我在该特定网站上设置的那些 很容易跟踪 我这么问是因为我不想最终消灭用户localStorage如果他们设置了其他值 我正在本地主机中测试这个并注意
  • 检测编码并将所有内容设为 UTF-8

    我从各种 RSS 源中读出大量文本并将它们插入到我的数据库中 当然 提要中使用了几种不同的字符编码 例如UTF 8 和 ISO 8859 1 不幸的是 文本编码有时会出现问题 例子 Fu ball 中的 在我的数据库中应如下所示 如果是 则
  • 将 fseek 与指向 stdin 的文件指针结合使用

    根据命令行参数 我设置一个文件指针指向指定文件或标准输入 用于管道传输 然后 我将此指针传递给许多不同的函数以从文件中读取 这是获取文件指针的函数 FILE getFile int argc char argv FILE myFile NU
  • 如何使用Chef设置环境变量?

    有一个与此类似的问题 但无法使其正常工作 我想简单地设置一个环境变量 然后使用它 execute start zookeeper do cwd opt zookeeper 3 4 5 bin command zkServer sh star
  • 如何在 Bootstrap Validation 中创建自定义验证

    我的目标是验证特定的文本字段 其中该字段依赖于其他元素的值 例如 我有一个选择字段和一个输入文本字段 仅当选择标签具有选定值时才需要输入文本 希望有人能帮忙 看一眼 http bootstrapvalidator com 在我们的项目中 我
  • ValueError:错误的项目数量超过 500,放置意味着 1,Python 和 Pandas

    我只从 xlsx 文件导入两列 我想计算一些东西 平均值 偏差 百分比变化 然后我想绘制所有这些 第一部分不会给我带来任何问题 但绘图却会给我带来任何问题 我的代码如下所示 import matplotlib pyplot as plt i
  • 使用连续变量的决策树[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我有一个关于使用连续变量的决策树的问题 我听说当输出变量是连续的并且输入变量是分类的时 分割标准是减少方差什么的 但我不知道如果输入变量是连续的它是如何工作的 输入变量 连续 输出变
  • 浮动小于 FLT_MIN。为什么是FLT_TRUE_MIN?

    在尝试了解浮点下溢情况下会发生什么时 我发现我可以使浮点数比 FLT MIN 小得多 我在 OS 10 9 上使用 xcode 5 1 语言方言是 gnu99 include
  • 基于权限的 WebApi 端点的上下文序列化

    我正在使用 Asp Net Web Api 我希望能够根据连接的客户端访问权限过滤掉响应对象上的某些字段 Example class Foo AccessFilter Uberlord string Wibble get set strin
  • Spring MVC - 在 JSP 视图中没有获取价值[重复]

    这个问题在这里已经有答案了 首先 我是 Spring MVC 领域的新手 我制作了一个简单的程序 其中 Spring MVC 将处理 GET 请求并设置一个名为 message 的变量 该变量应在 JSP 中显示设置值 但未按预期执行 代码
  • 如何使用 RAND(seed) 对 MySQL 中的行进行采样?

    我需要使用 MySQL 从表中获取可重复的随机行集 我使用 MySQL RAND 函数实现了这一点 并使用行的 bigint 主键作为种子 有趣的是 这产生的数字看起来根本不是随机的 谁能告诉我这里发生了什么以及如何让它正常工作 selec
  • SignTool 未使用 SHA256 签署 ClickOnce 应用程序,仅使用 SHA1

    我正在尝试签署我的 clickonce 应用程序 我有一个使用 SHA256 的 EV 代码签名证书 问题是 当我使用构建后命令签署我的应用程序时 它似乎使用 SHA1 而不是 SHA256 这是输出窗口的剪辑 Running Code A
  • 如何将具有动态键的文档映射到 Spring MongoDb 实体类

    我有一个可以具有动态键名称的文档 id ObjectId 51a29f6413dc992c24e0283e envinfo appName MyJavaApp environment cpuCount 12 heapMaxBytes 572
  • 为什么 ICollection 同时实现 IEnumerable 和 IEnumerable

    为什么ICollection