为什么 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 的相关文章

  • 未提供参数时如何指定 C# System.Commandline 行为?

    在我的控制台应用程序中 当未提供控制台参数时 将执行我指定列表 在本例中为参数 3 的任何处理程序 调用该处理程序时 布尔参数设置为 false 但对我来说 根本不调用它更有意义 如何防止这种情况发生并显示帮助文本 using System
  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com

随机推荐

  • 如何在 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