从 IEnumerable 中删除项目

2024-01-31

我有 2 个 IEnumerable 集合。

IEnumerable<MyClass> objectsToExcept 

and

IEnumerable<MyClass> allObjects.

objectsToExcept可能包含来自的对象allObjects.

我需要从中删除allObjects对象在objectsToExcept。例如:

foreach (var myClass in objectsToExcept)
{
allObjects.Remove(myClass);
}

Or

allObject.Except(objectsToExcept)

但这不起作用。方法执行后的计数表明没有任何项目被删除。


我不知道第一个版本如何编译,除非您使用结果,否则第二个版本不会执行任何操作。它不会从现有集合中删除任何内容 - 事实上,甚至可能没有be支持它的内存中集合。它只是返回一个序列,当迭代时,该序列将返回适当的值。

If you are使用结果,例如

IEnumerable<MyClass> others = allObjects.Except(objectsToExcept);
foreach (MyClass x in others)
{
    ...
}

那么应该没问题if你已经覆盖了GetHashCode and Equals or如果您乐意使用引用相等。您是否尝试删除逻辑上相等的值,或者执行相同的操作参考出现在两个序列中?你有没有覆盖GetHashCode and Equals,如果是这样,您确定这些实现有效吗?

基本上应该没问题 - 我建议你尝试创建一个简短但完整的程序来演示该问题;我怀疑,当你这样做时,你会发现问题所在。

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

从 IEnumerable 中删除项目 的相关文章

  • SL4 AutoCompleteBox 重复筛选结果问题

    我在 AutoCompleteBox 过滤方面遇到问题 它似乎记住了之前的过滤器 例如 我输入 A 它会返回 1 项 我删除 A 并输入 Z 这应该返回 1 项 问题是它返回 A 过滤器加上 Z 的结果 我删除 Z 并输入 S 这会带回 2
  • DispatcherTimer 未按时执行

    我正在使用 c 中的 DispatchTimer 编写一个时钟应用程序 但由于某些原因 我的时钟似乎时不时地跳过 1 秒 例如 52 秒 gt 54 秒 跳过 53 秒 在我看来 计时器并不是每秒都执行一次 DispatcherTimer
  • 使用不带参数的 Split() 时,默认分隔符是什么?

    所以我看了看String Split 今天 C 中的方法 我意识到你也可以向它传递零参数 这是我从未考虑过的 使用时默认的分隔符是什么Split 没有任何参数 如果没有值 则为空白 来源自here https msdn microsoft
  • 返回 int& 的函数[重复]

    这个问题在这里已经有答案了 我在网上查了一下发现一篇试图解释的文章std move和右值 http thbecker net articles rvalue references section 01 html并发现了一些我实在无法掌握的东
  • C# 中附加/分离事件处理程序的不同方式有什么区别

    我的问题有两个部分 首先 我们可以通过以下两种方式附加事件处理程序 myObject MyEvent new EventHandler MyHandler myObject MyEvent MyHandler 据我了解 这两者是等价的 在第
  • 如何在 Windows 窗体中运行屏幕保护程序作为其背景?

    如何在 Windows 窗体中运行屏幕保护程序作为其背景 用户还可以在屏幕保护程序运行时与表单控件进行交互 为什么这个 我们有一个案例 需要在用户时运行 Windows Bubbles 屏幕保护程序 可以继续与表单控件交互吗 您可以使用以下
  • 用 C# 制作 Vista 风格的应用程序

    我正在运行 Windows Vista 并且希望外观看起来像常规 Vista 程序 有没有关于如何构建 Vista 风格应用程序的真正好的教程 文章 我还想学习如何使用本机代码并将其转换为 C 如this http bartdesmet n
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • 在“using”语句中使用各种类型 (C#)

    自从C usingstatements只是try finally dispose 的语法糖 为什么它接受多个对象仅当它们属于同一类型时 我不明白 因为它们需要的只是 IDisposable 如果它们都实现 IDisposable 应该没问题
  • 为什么重载方法在 ref 仅符合 CLS 方面有所不同

    公共语言规范对方法重载非常严格 仅允许根据其参数的数量和类型来重载方法 如果是泛型方法 则根据其泛型参数的数量进行重载 根据 csc 为什么此代码符合 CLS 无 CS3006 警告 using System assembly CLSCom
  • 不要声明只读可变引用类型 - 为什么不呢?

    我一直在阅读这个问题 https stackoverflow com questions 2274412 immutable readonly reference types fxcop violation do not declare r
  • `cosf`、`sinf` 等不在 `std` 中 [重复]

    这个问题在这里已经有答案了 根据这里的讨论 我有报告了一个错误 https bugs launchpad net ubuntu source gcc 8 bug 1831385给 Ubuntu 开发者 编译以下示例 C 程序时 includ
  • 如何在 VS Code 中为 CMake 项目设置 C/C++ IntelliSense?

    我正在尝试使用 libTooling 编写一个工具 我对其进行了设置 以便它可以使用 LLVM 文档中的示例进行编译 然而 C C IntelliSense 似乎不适用于 CMake 项目 我的工具位于
  • 你能解释一下这个C++删除问题吗?

    我有以下代码 std string F WideString ws GetMyWideString std string ret StringUtils ConvertWideStringToUTF8 ws ret return ret W
  • 如何强制执行特定的 UserControl 设计

    我正在编写一个基本用户控件 它将由一堆其他用户控件继承 我需要对所有这些后代控件强制执行某种设计 例如 顶部必须有几个按钮以及一个或两个标签 后代用户控件区域的其余部分可以自由放置任何内容 最初 我认为我可以将一个面板放到 Base Use
  • 如何使用 ASP.NET Web 表单从代码隐藏中访问更新面板内的文本框、标签

    我在更新面板中定义了一些控件 它们绑定到中继器控件 我需要根据匿名字段隐藏和显示用户名和国家 地区 但问题是我无法以编程方式访问更新面板中定义的控件 我如何访问这些控件 我也在网上查找但找不到很多参考资料 下面是来自aspx页面和 cs页面
  • 程序退出后,TcpListener Socket 仍处于活动状态

    当我的程序退出时 我试图停止 TCP 侦听器 我不关心套接字或任何活动客户端套接字上当前活动的任何数据 套接字清理代码本质上是 try myServer Server Shutdown SocketShutdown Both catch E
  • 在何处将 CFLAG(例如 -std=gnu99)添加到 (Eclipse CDT) 自动工具项目中

    我有一个简单的 Autotools C 项目 不是 C 其框架是由 Eclipse CDT Juno 为我创建的 CFLAG 通过检查 似乎是 g O2 我希望所有生成的 make 文件也具有 std gnu99附加到 CFLAG 因为我使
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标
  • 使用剪贴板 SetText 换行

    如何使用 SetText 方法添加换行符 I tried Clipboard SetText eee n xxxx 但当我将剪贴板数据粘贴到记事本中时 它没有给我预期的结果 预期结果 eee xxxx 我怎样才能做到这一点 Windows

随机推荐

  • jQuery 处理表单

    这是一个非常简单的问题 我希望 但由于只是学习 掌握 jQuery 我提前道歉 如果我有一个表格 例如
  • google docs share 上使用了哪些技术

    我需要理解并知道我该如何做某事 在我的项目中 我需要创建类似于谷歌文档上的技术的东西 当我与其他人共享文档并且他和我同时编辑时 我会看到他的更改 我不知道这是否称为反向ajax或其他类型的技术 有人可以向我解释一下这是一种什么样的发展吗 E
  • Google Play 商店:您需要修复高分辨率图标。这不是有效的图像

    这是我尝试在 Play 商店中为我的应用程序提供图像时收到的错误消息 这是图像 它是在 GIMP 中创建的 请帮忙 这使我无法启动我的应用程序 如 Google Play 商店开发者控制台所述 图标图像应为 512 512 32 bitPN
  • Chrome 不缓存预检

    我正在实现一个应该支持跨域请求的 REST API 我想使用 CORS 来实现这一目标 我的几乎所有请求都是 不简单 的 这意味着对于所有非 GET 请求 浏览器必须发送预检请求 为了限制预检 选项请求的数量 我尝试让浏览器缓存选项请求 这
  • 如何识别 Rails 应用程序中的路线

    我有这个非常基本的问题 我正在用这个仪表板导轨发动机 https github com gottfrois dashing rails 这给了我一个views layouts dashing dashboard html erb 这是仪表板
  • Lombok Builder 注释引发 UnsupportedOperationException

    我在我的项目中使用 Lombok 我的模型看起来像 Builder Data AllArgsConstructor public class ScreenDefinitionDTO Singular private List
  • 如何获取可靠的 QGLWidget 快照

    在我的应用程序中 我拍摄 QGLWidget 内容的快照有两个目的 当只有覆盖层发生变化时 不要一直重绘场景 而是使用缓存的像素图 Lat 用户截取特定绘图的屏幕截图 3D 场景 我尝试的第一件事是grabFrameBuffer 对于第一个
  • 如何将 y 轴刻度标签设置在固定位置,以便当我向左或向右滚动时 y 轴刻度标签应该可见?

    在我的程序中 我首先绘制了图形 然后将图形导入到画布中 然后我将画布导入滚动区域 当我运行我的程序时 如果我向左滚动 yaxis 刻度标签会隐藏 或者我向右转动 yaxis 刻度标签也会隐藏 我已经采取了两个轴 轴 轴2 我已经设置了axe
  • 如何始终阻止 TFS 中特定文件的签入

    我总是对一个文件进行更改 但我从不想将其签入 我希望 TFS 阻止我将其签入或提交更改 如何配置 TFS 来执行此操作 细节 该项目的另一位开发人员签入了一些错误代码 我更愿意在本地计算机上注释掉这些代码 由于他们是客户 我更愿意将其保留为
  • Swift 5 结果类型

    苹果在 Swift 5 中引入了Result类型 它是具有两种情况的通用枚举 public enum Result
  • 如何在不恢复报表服务器的情况下将 SSRS 数据源从一台服务器迁移或复制到另一台服务器

    我正在尝试将 SSRS 报告从 SQL 2008r2 迁移到 SQL 2014 服务器 我使用reportsync将报告传输到服务器 报告已成功传输 但角色订阅和数据源未传输 有没有什么方法可以将数据源 角色和订阅从一台服务器复制或迁移到另
  • 如何使用 Python 中的 Selenium-chromeDriver 在 Chrome 中打开新选项卡

    有没有人用过ChromeDriver在 Chrome 中打开新标签页 使用此代码我可以打开我的index html在 Chrome 中 driver webdriver Chrome usr bin chromedriver driver
  • C# 获取调用某个函数的函数列表[重复]

    这个问题在这里已经有答案了 这是这个问题的切线 从方法内检索调用方法名称 https stackoverflow com questions 615940 retrieving the calling method name from wi
  • 用玩笑测试 chrome.storage.local.set

    我是测试的新手 并开始使用 jest 我有这个函数将数据保存在 chrome storage local 中 我想测试 chrome storage local 是否调用了 3 次 这是函数 saveData function chrome
  • C 测试变量是否位于只读部分

    我想编写一个低级日志记录函数 如下所示 DO DBG some string val1 val2 出于性能原因 我想要它做的是存储指向字符串的指针而不是字符串的副本 这假设该字符串是只读文字 为了防止人们必须调试调试器 如果编译器能够抱怨第
  • iOS - UINavigationController,隐藏导航栏

    我在隐藏 UINavigationController 的导航栏时遇到了一些小问题 我已经添加了 self navigation navigationBar hidden true 不幸的是 这会在白色状态栏后面留下某种背景 白色 将内容
  • VLC 语法转码并流式传输到标准输出?

    Goal 我正在尝试使用VLC http www videolan org vlc index html作为本地服务器来扩展使用以下命令创建的应用程序的视频功能Adobe AIR Flex and Actionscript 我在用VLC流式
  • 热和冷可观察量:是否存在“热”和“冷”运算符?

    我回顾了以下SO问题 什么是热观测值和冷观测值 https stackoverflow com questions 2521277 what are the hot and cold observables 总结一下 冷可观察对象在有观察者
  • 使用fragment时如何正确实现状态栏后面的视图内容

    我正在尝试将我的 ImageBackdrop 从折叠工具栏放在状态栏后面 我已经用抽屉和导航视图正确完成了它 但我不能用我的片段做到这一点 在奶酪方块演示中 克里斯做到了 我可以这样做 但它不使用单个活动应用程序和片段转换 所以这不完全是我
  • 从 IEnumerable 中删除项目

    我有 2 个 IEnumerable 集合 IEnumerable