从列表中删除项目有困难吗?

2024-01-14

我有两个清单。第一个是所有学生,第二个是选定的学生。我希望如果我一次选择某个学生,他们将从所有学生列表中删除。这是我的代码,但事实并非如此。学生不会被开除。

foreach (var li in ListSelectedStudents.ToList())
{
    if (ListAllStudents.Contains(li))
    {
        ListAllStudents.Remove(li);
    }
}

Contains将使用相等来确定什么是“相等”,我在这里假设您的自定义类没有提供自定义相等实现,这意味着将为该类型提供默认的相等,并且它只是使用引用相等。所以即使你认为两件事是“平等的”,Contains方法没有,所以不会进入Remove call.

要让该特定代码执行您需要做的事情,需要提供一个实现IEquatable<Student> on the Student类,如备注中所述here http://msdn.microsoft.com/en-us/library/bhkz42b3%28v=vs.110%29.aspx.

在这种情况下,Contains实际上并不需要Remove将进行相同的检查。如果没有什么要删除的,Remove调用将是透明的,实际上什么都不做。

正如在我有机会提供信息之前就在评论中发现的那样,Remove也会依靠IEquatable<Student> (docs http://msdn.microsoft.com/en-us/library/cd666k3e%28v=vs.110%29.aspx)所以你仍然需要提供一个实现,但它会让你的代码看起来更干净一些:

foreach (var li in ListSelectedStudents.ToList())
{
    ListAllStudents.Remove(li);
}

可能有多种方法可以做到这一点,而无需实现接口,但您将无法使用当前的代码。我将留下其他答案来解决这些替代方案,因为今天是星期五,我的大脑尚未正常运作。

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

从列表中删除项目有困难吗? 的相关文章

  • 检查两个数是否是彼此的排列?

    给定两个数字 a b 使得 1 例如 123 是 312 的有效排列 我也不想对数字中的数字进行排序 如果您指的是数字的字符 例如 1927 和 9721 则 至少 有几种方法 如果允许排序 一种方法是简单地sprintf将它们放入两个缓冲
  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • 如何避免情绪低落?

    我有一个实现状态模式每个状态处理从事件队列获取的事件 根据State因此类有一个纯虚方法void handleEvent const Event 事件继承基础Event类 但每个事件都包含其可以是不同类型的数据 例如 int string
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif

随机推荐

  • Android Studio:NoClassDefFoundError

    我正在尝试构建一个使用 javamail 和 gmail 的 smtp 服务发送电子邮件的应用程序 但是当我运行它时 当我调用 Session getInstance 时它会崩溃 调试后发现这是一个关于 com sun mail util
  • python:绘制线框3D长方体

    我想在 python 中绘制 3d 长方体 输入 中心 中心3分 半径 3 个半径值 每个维度一个 理想情况下 它应该是一个线框图 我需要看看里面有什么 我不太确定如何去做 使用 python matplotlib 或 Mayavi 就可以
  • 有什么方法可以让 python 文件名不以完全限定名称结尾吗?

    假设我们有这样的文件结构 project ticklers kitten tickler py class KittenTickler puppy tickler py class PuppyTickler 假设 KittenTickler
  • 导入文本文件出现错误

    我有一个包含以下数据的文本文件 5298 10036 4 360 8 6128 11947 2 385 7 9472 18930 0 233 4 5056 9790 1 293 6 我使用以下代码读取该文件 file1 open test
  • 适用于 VISTA、7 及更高版本的 Windows API

    WinAPI Win32 之间有什么根本区别吗 利用新操作系统功能是否需要任何其他知识 过去编写过 Win32 应用程序的人是否可能会陷入任何陷阱 我不是在谈论 Silverlight 那是一个完全不同的蜡球 我还没有在工作中支持这一点的
  • 我可以安全地将 OpenMP 与 C++11 结合使用吗?

    OpenMP 标准仅考虑 C 98 ISO IEC 14882 1998 这意味着在 C 03 甚至 C 11 下没有支持使用 OpenMP 的标准 因此 任何使用 C gt 98 和 OpenMP 的程序都会在标准之外运行 这意味着即使它
  • 使用 rhino 的 JavaAdapter 的示例

    有人可以给我提供一个如何使用 Rhino 的 java 适配器在 java 脚本中扩展 java 类的示例吗 对于其他可能遇到此问题的人来说 有一个很好的例子here http my opera com sutabi blog puttin
  • 已达到 Google App Engine 前端实例时间限制

    我有一个使用 Google App Engine 免费选项托管的静态 html 网站 我没有任何流量可言 因为它是新网站 唯一的流量是我自己访问该网站 我注意到 只有 15 个主页请求 我的前端实例消耗时间为 5 按照这个速度 我的网站每天
  • 如何在Tableau中显示40+列?

    我正在尝试制作一份包含大约 40 列 Dims measure 的列表报告 但无法正确完成 该要求推动了Tableau通过利用其仅 16 列的限制来限制 我怎样才能完成这件事 我读了这个 http www tableausoftware c
  • Dot:如何用黑色轮廓装饰图形节点,同时用另一种颜色填充?

    我需要格式化点图的帮助 为了简化我的问题 我在这里有一个点代码 我通过点工具运行它 digraph G TestNode label Test Node shape egg style filled color yellow 结果是这样的
  • HTTParty 的内存问题和下载大文件

    这会导致 Ruby 的内存问题吗 我知道如果大小超过 10KB Open URI 就会写入 TempFile 但是 HTTParty 会在写入 TempFile 之前尝试将整个 PDF 保存到内存中吗 src Tempfile new fi
  • 调整 WriteableBitmap 的大小

    我创建了 Gray16 格式的 WriteableBitmap 我想将此 WriteableBitmap 调整为我已知的尺寸 并保留像素格式 Gray16 是否有人致力于调整 WriteableBitmap 的大小 请帮我 我也在网上搜索了
  • queryselectorAll() 与正则表达式属性选择器

    var arr slice call document querySelectorAll a href pricing 返回一个长度为 6 的数组 var arr slice call document querySelectorAll a
  • 访问 SimpleXMLElement 中的数字属性

    我正在尝试访问以下元素中的数字 但无法从中获取值 echo object gt 0 returns Parse error syntax error unexpected T LNUMBER expecting T STRING or T
  • Maven:POM 模块和子模块层次结构

    我的项目结构如下 module pom xml submodule pom xml pom xml POM 简化 Project
  • 如何使用字符串创建 JSON 对象?

    我想使用 String 创建一个 JSON 对象 例子 JSON test1 value1 test2 id 0 name testName 为了创建上面的 JSON 我使用了它 String message JSONObject json
  • 将多个 javascript 文件合并为一个的工具... [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有一种工具可以将多个javascript文件合并为一个然后压缩它们 雅虎 YUI 压缩器 http developer yahoo c
  • 相同的选择菜单列表项切换

    我正在尝试开发一个涉及 2 个选择列表项的功能 流程是这样的 有两个列表项 相同 具有相同的列表项 当我选择一个选项时Main Tags列表 相同的选项Sub Tags列表应该被禁用 例如 如果我选择Tag 1来自Main Tags然后列出
  • cLion + Qt5 - 退出代码 -1073741515 (0xC0000135)

    我正在尝试使用 QT5 和 cLion 运行简单的测试 但我遇到了退出代码墙 这是我的环境 克狮2017 2minGw 5 0 cMake 3 8 2Qt 5 9 0 CMakeList txt cmake minimum required
  • 从列表中删除项目有困难吗?

    我有两个清单 第一个是所有学生 第二个是选定的学生 我希望如果我一次选择某个学生 他们将从所有学生列表中删除 这是我的代码 但事实并非如此 学生不会被开除 foreach var li in ListSelectedStudents ToL