LinkedList (2.0):迭代删除项目

2024-01-08

我需要迭代LinkedList<T>(在 .NET 2.0 中)并根据给定标准删除所有项目。 在 Java 下这是很简单的方法,因为我可以执行以下操作:

Iterator<E> i = list.iterator();
while (i.hasNext()) {
    E e = i.next();
    if (e == x) {
        // Found, so move it to the front,
        i.remove();
        list.addFirst(x);
        // Return it
        return x;
    }
}

不幸的是,在 .NET 行为中IEnumerator<T>(相当于Iterator<E>)没有remove方法从集合中删除当前元素。 另外,在LinkedList<T>无法访问给定索引处的元素,无法通过从最后一个元素迭代到第一个元素来完成任务。

您知道如何做吗?非常感谢!


这将在链表的一个循环中删除与某一条件匹配的所有节点。

LinkedListNode<E> node = list.First;

while (node != null)
{
    var next = node.Next;
    if (node.Value == x) {
        list.Remove(e);
    }
    node = next;
}

我相信这就是您正在尝试的...您还添加回了列表开头的节点(因此您的java代码没有删除所有节点,而是将第一个匹配移动到列表的开头)。使用这种方法也很容易做到这一点。

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

LinkedList (2.0):迭代删除项目 的相关文章

  • HashMap 值需要不可变吗?

    我知道 HashMap 中的键需要是不可变的 或者至少确保它们的哈希码 hashCode 不会改变或与另一个具有不同状态的对象发生冲突 但是 HashMap中存储的值是否需要与上面相同 为什么或者为什么不 这个想法是能够改变值 例如在其上调
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 转到 C# WPF 中的第一页

    我正在 WPF 中使用导航服务 为了导航到页面 我使用 this NavigationService Navigate new MyPage 为了返回我使用 this NavigationService GoBack 但是如何在不使用的情况
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • C++派生模板类继承自模板基类,无法调用基类构造函数[重复]

    这个问题在这里已经有答案了 我试图从基类 模板 继承 派生类也是模板 它们具有相同的类型 T 我收到编译错误 非法成员初始化 Base 不是基类或成员 为什么 如何调用基类构造函数 include
  • 范围和临时初始化列表

    我试图将我认为是纯右值的内容传递到范围适配器闭包对象中 除非我将名称绑定到初始值设定项列表并使其成为左值 否则它不会编译 这里发生了什么 include
  • 用于从字符串安全转换的辅助函数

    回到 VB6 我编写了一些函数 让我在编码时无需关心字符串的 null 和 数字的 null 和 0 等之间的区别 编码时 没有什么比添加特殊情况更能降低我的工作效率了用于处理可能导致一些不相关错误的数据的代码 9999 10000 如果我
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • Android:无法发送http post

    我一直在绞尽脑汁试图弄清楚如何在 Android 中发送 post 方法 这就是我的代码的样子 public class HomeActivity extends Activity implements OnClickListener pr
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 为什么我使用google'smtp'无法发送电子邮件?

    我有以下程序使用 smtp gmail com 587 发送电子邮件 namespace TestMailServer class Program static void Main string args MailMessage mail
  • OpenCSV:将嵌套 Bean 映射到 CSV 文件

    我正在尝试将 bean 映射到 CSV 文件 但问题是我的 bean 具有其他嵌套 bean 作为属性 所发生的情况是 OpenCSV 遍历属性找到一个 bean 然后进入其中并映射该 bean 内的所有数据 如果找到另一个 bean 它就
  • 如何重新启动死线程? [复制]

    这个问题在这里已经有答案了 有哪些不同的可能性可以带来死线程回到可运行状态 如果您查看线程生命周期图像 就会发现一旦线程终止 您就无法返回到新位置 So 没有办法将死线程恢复到可运行状态 相反 您应该创建一个新的 Thread 实例
  • Fluent NHibernate 日期时间 UTC

    我想创建一个流畅的 nhibernate 映射来通过以下方式映射 DateTime 字段 保存时 保存 UTC 值 读取时 调整为本地时区值 实现此映射的最佳方法是什么 就我个人而言 我会将日期存储在 UTC 格式的对象中 然后在读 写时在
  • 过度使用委托对性能来说是一个坏主意吗? [复制]

    这个问题在这里已经有答案了 考虑以下代码 if IsDebuggingEnabled instance Log GetDetailedDebugInfo GetDetailedDebugInfo 可能是一个昂贵的方法 因此我们只想在调试模式
  • org.apache.commons.net.io.CopyStreamException:复制时捕获 IOException

    我正在尝试使用以下方法中的代码将在我的服务器中创建的一些文件复制到 FTP 但奇怪的是我随机地低于错误 我无法弄清楚发生了什么 Exception org apache commons net io CopyStreamException
  • 为什么 Ajax.BeginForm 在 Chrome 中不起作用?

    我正在使用 c NET MVC2 并尝试创建一个 ajax 表单来调用删除数据库记录 RemoveRelation 的方法 删除记录的过程正在按预期进行 删除记录后 表单应调用一个 JavaScript 函数 从视觉效果中删除该记录 Rem
  • 泛型、数组和 ClassCastException

    我想这里一定发生了一些我不知道的微妙事情 考虑以下 public class Foo
  • boost::program_options:带有固定和可变标记的参数?

    是否可以在 boost program options 中使用此类参数 program p1 123 p2 234 p3 345 p12 678 即 是否可以使用第一个标记指定参数名称 例如 p 后跟一个数字 是动态的吗 我想避免这种情况
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS

随机推荐

  • 为什么 simplexml_load_file 相对于主机文件不起作用?

    I have simplexml load file指令放置在包含的 PHP 文件中 但该指令的工作原理取决于我包含此文件的位置 为什么 是否可以相对于放置的文件指令解释相对文件路径 您始终可以使用魔法访问当前文件的完整路径 FILE ht
  • partial_fit Sklearn 的 MLPClassifier

    我一直在尝试使用Sklearn的神经网络MLPClassifier 我有一个大小为 1000 个实例的数据集 具有二进制输出 我想对其应用带有 1 个隐藏层的基本神经网络 问题是我的数据实例并非同时可用 在任何时间点 我只能访问 1 个数据
  • Erlang 进程与 Java 线程

    我在读Sa a Juri 所著的 Elixir in Action 一书 第一章 https manning content s3 amazonaws com download b b915834 e80b 4520 939d ff1900
  • Delphi 中的嵌套属性

    Delphi 有没有办法使用嵌套属性 目前我正在使用Delphi XE 例如 TCompoundAttribute class TCustomAttribute public constructor Create A1 A2 TCustom
  • 有没有办法在函数运行完成后运行其他函数?

    def foo pass def bar print good bay 两个功能如打击 现在我想在 foo run 完成后运行 bar 函数 有没有类似类使用的方法 del 据我所知 在课堂方法中我可以使用 del 就像下面这样 class
  • 在表中存储/检索数组的最佳方法

    我目前在 MySQL 中有一个表可以正常存储值 但我想向该表添加一个字段来存储值数组 例如城市 我应该简单地将该数组存储为 CSV 吗 每行都需要它自己的数组 因此我对创建一个新表并为前一个表中插入的每行插入 2 5 行感到不安 我觉得这种
  • 如何在 JavaFX TableView 中的行悬停时发生某些事情?

    现在 当在表格视图中选择一行时 我会在鼠标位置显示对话框 我希望当我将鼠标悬停在每一行上时显示对话框 似乎有一个 CSS hover 所以我认为它可以以某种方式在 java 代码中捕获 您可以创建一个自定义表行工厂 它将侦听器添加到行的悬停
  • 为什么我不能在 std::vector 中使用抽象类?

    我是从这些问题中得出的 为什么我们不能声明 std vector https stackoverflow com questions 2160920 why cant we declare a stdvectorabstractclass
  • 将 $mysqli 设置为 OOP 的全局变量

    好的 这是一个复杂的问题 但任何帮助或建议将非常感激 所以我正在与一个网站合作 使用 htaccess 将所有流量重定向到load php 对于任何sql功能 我有一个抽象类 它有很多查询语句作为传递参数来定义每个查询的细节的函数 例如 t
  • 如何防止 Netlify 因为 process.env.CI = true 将警告视为错误?

    在 Netlify 上部署新项目开始失败 检查日志 我看到以前成功部署的日志中没有的内容 Treating warnings as errors because process env CI true Most CI servers set
  • 以编程方式安排 AWS Lambda 一次性执行

    我有两个 AWS Lambda 函数 我希望 Lambda A 确定某个时间点 例如 2022 年 5 月 4 日 10 00 然后我希望 Lambda B 被安排在这个特定的时间点运行 我可能可以通过使用 Lambda A 以编程方式创建
  • 在 Shiny 应用程序中使用 Font Awesome 5.7 图标

    Shiny s icon 功能仅支持 Font Awesome 4 7 图标 可以在此处找到 Shiny 支持的图标的完整列表 https fontawesome com v4 7 0 icons 自那以后 Font Awesome 已多次
  • 如何为 Windows 安装程序创建清单?

    我们的应用程序有一个安装程序 必须像许多其他安装程序一样以管理员权限下载和运行 但是 安装程序未命名为 setup exe 因此 Windows 不会自动检测到它需要提升才能运行 坦率地说 更改安装程序名称以使事情正确提升听起来相当混乱 本
  • 如何在 PHPStorm (WebStorm) 中调试 grunt

    有人对在 PHP Storm 中调试 grunt 例如事件侦听器函数 有个好主意 Storm 中有 Node js 支持 但如果我想调试 grunt 任务 例如当文件更改并且监视任务发出它时 我不确定如何配置调试设置 我使用Windows
  • 带范围运算符的 Perl 上下文是什么?

    我是 Perl 新手 我想结合范围运算符来理解 Perl 上下文 这是我的代码 use strict use warnings my asc 10 50 print asc n 我有两个疑问 如果表达式 10 50 返回一个数组 那么 由于
  • ReversedWildcardFilterFactory 如何加速通配符搜索?

    索尔docs http wiki apache org solr AnalyzersTokenizersTokenFilters solr ReversedWildcardFilterFactory say solr ReversedWil
  • OpenGL 4.0 GPU 绘图功能?

    在维基百科和其他来源对 OpenGL 4 0 的描述中 我读到了有关此功能的信息 绘制由 OpenGL 或 OpenCL 等外部 API 生成的数据 无需 CPU 干预 这是指什么 Edit 看来这一定是指我的 Draw Indirectb
  • 如何根据斜率和截距添加线

    在R中 有一个函数叫做abline其中可以根据截距 第一个参数 和斜率 第二个参数 的规范在图上绘制一条线 例如 plot 1 10 1 10 abline 0 1 其中截距为 0 斜率为 1 的线跨越绘图的整个范围 Matplotlib中
  • 使用 Octave 制作轨迹动画

    我有一套 x y 描述物体运动轨迹的坐标 我想使用 GNU Octave 制作该轨迹的动画 数据集非常大 因此如果我希望动画流畅 我将无法在每次迭代时重新绘制整个绘图 有哪些函数可以让我 更新 绘图而不是重新绘制它 另外 我还有另外一套 v
  • LinkedList (2.0):迭代删除项目

    我需要迭代LinkedList