C#集合循环删除某些行

article/2025/6/21 4:22:59

你想要在遍历集合(例如List)的同时删除某些元素时,直接在循环中删除元素可能会导致问题,因为这可能会改变集合的大小和导致索引问题;

可以用for循环的倒序来删除;

如果要删除满足特定条件的所有元素,也可以使用List的RemoveAll方法,它接受一个谓词(一个返回布尔值的函数),并根据该函数返回true的元素来删除元素;

下面看一下直接循环删除;使用for循环的倒序删除;使用RemoveAll删除;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace xhdel
{public partial class Form1 : Form{List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 17, 88, 199};public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){textBox1.Text = String.Join(",", numbers);}private void button1_Click(object sender, EventArgs e){for (int i = 0; i < numbers.Count; i++){if (numbers[i] % 2 == 0) // 假设我们要删除所有偶数{numbers.RemoveAt(i);}}textBox2.Text = String.Join(",", numbers);numbers = new List<int> { 1, 2, 3, 4, 5, 17, 88, 199, 201 };for (int i = numbers.Count - 1; i >= 0; i--){if (numbers[i] % 2 == 0) // 假设我们要删除所有偶数{numbers.RemoveAt(i);}}textBox3.Text = String.Join(",", numbers);numbers = new List<int> { 1, 2, 3, 4, 5, 17, 88, 199, 303 };numbers.RemoveAll(n => n % 2 == 0);textBox4.Text = String.Join(",", numbers);}}
}

 

在这里看上去直接循环删除也没错;

为保险起见还是使用倒序比较好;

如果满足条件,使用RemoveAll比较简洁;


http://www.hkcw.cn/article/JUpttieCFR.shtml

相关文章

fpga系列 HDL : FPGA实现奇数倍分频

偶分频 //240个时钟周期翻转一次输出&#xff0c;这实际上是一个 480倍分频器 reg [7:0] counter 0; reg divided_clk 1b0; always (posedge clk) beginif (counter 239) begin // 240counter < 0;divided_clk < ~divided_clk; end else begincounter < counter 1…

ICML 2025 Spotlight | 机器人界的「Sora」!让机器人实时进行未来预测和动作执行!

标题&#xff1a;Video Prediction Policy: A Generalist Robot Policy with Predictive Visual Representations 作者&#xff1a;Yucheng Hu, Yanjiang Guo, Pengchao Wang, Xiaoyu Chen, Yen-Jen Wang, Jianke Zhang, Koushil Sreenath, Chaochao Lu, Jianyu Chen 机构&am…

「 扑翼飞行器 」悬停飞行的信号串联滤波器设计

一、前言 小白在设计扑翼飞行器悬停算法过程中,设计了三种滤波器串联使用,总结如下。 二、正文 陷波滤波器 (Notch @30 Hz) 目的:针对扑翼机构或传感系统中常见的机械谐振或结构共振噪声进行有源抑制。 工作原理:在归一化频率 (假设采样率 , HZ)处设计一个陷波(notch)…

RL 基础 (待补充)

注&#xff1a;本文仅用于自学习笔记备忘&#xff0c;不做任何分享和商业用途。 主要参考资料&#xff1a; 蘑菇书EasyRLA (Long) Peek into Reinforcement Learning | LilLog 第1章 强化学习基础 RL算法分类&#xff1a; Model-based: Rely on the model of the environm…

Redis7底层数据结构解析

redisObject 在 Redis 的源码中&#xff0c;Redis 会将底层数据结构&#xff08;如 SDS、hash table、skiplist 等&#xff09;统一封装成一个对象&#xff0c;这个对象叫做 redisObject&#xff0c;也简称 robj。 typedef struct redisObject {unsigned type : 4; // 数…

Kafka 的 ISR 机制深度解析:保障数据可靠性的核心防线

在 Kafka 的消息处理体系中&#xff0c;数据的可靠性和高可用性是至关重要的目标。而 ISR&#xff08;In-Sync Replicas&#xff0c;同步副本&#xff09;机制作为 Kafka 实现这一目标的关键技术&#xff0c;在消息复制、故障容错等方面发挥着核心作用。接下来&#xff0c;我们…

cusor无限续杯

githut开源网址&#xff1a;https://github.com/yuaotian/go- 敲黑板下面是主要步骤和注意事项&#xff01; step1:cursor软件退出登录 step2:cursor网页端删除账号 step3:运行命令&#xff08;注意&#xff1a;用管理员身份运行windows powershell&#xff0c;不能用cmd&…

360浏览器设置主题

设置默认主题&#xff1a; 1.右上角有个皮肤按钮 进来后&#xff0c;右边有个回复默认皮肤按钮。 换成彩色皮肤后&#xff0c;找按钮不太好找了。

DAY 17 常见聚类算法

目录 DAY 17 常见聚类算法1.聚类的指标2.聚类常见算法&#xff1a;kmeans聚类、dbscan聚类、层次聚类3.三种算法对应的流程作业&#xff1a; 对心脏病数据集进行聚类。 DAY 17 常见聚类算法 import seaborn as sns from sklearn.decomposition import PCA from sklearn.prepro…

MySQL存储架构深度解析:从引擎选型到云原生实践(2025最新版)

引言 在数字经济时代&#xff0c;MySQL作为全球使用最广泛的关系型数据库&#xff0c;其存储技术直接影响着全球70%以上互联网企业的数据处理能力。2025年云原生数据库市场规模预计突破$50B&#xff0c;而MySQL存储引擎的选型与优化仍是DBA的核心课题。本文将结合最新行业实践…

Cesium快速入门到精通系列教程

一、打造第一个Cesium应用 1、官方渠道下载Cesium&#xff08;可选择历史版本&#xff09; ​​GitHub Releases页面​​ 访问 Cesium GitHub Releases&#xff0c;此处列出了所有正式发布的版本。 通过标签&#xff08;如 v1.95.0&#xff09;选择目标版本&#xff0c;下载…

Unity 模拟高度尺系统开发详解——实现拖动、范围限制、碰撞吸附与本地坐标轴选择

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! Unity 模拟高度尺系统开发详解——实现拖动、范围限制、碰撞吸附与本地坐标轴选择 TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不…

Spark核心:单跳转换率计算全解析

目录 代码功能解释与问题分析 关键问题分析 修正与拓展方案 1. 修正分子计算逻辑 2. 修正分母计算逻辑 3. 完善转换率计算 4. 优化代码结构 5. 性能优化 修正后的代码示例 关键改进点说明 测试与验证建议 package core.reqimport org.apache.spark.rdd.RDD import o…

基于STM32单片机CO气体检测

基于STM32单片机CO检测 &#xff08;仿真&#xff0b;程序&#xff0b;原理图&#xff09; 功能介绍 具体功能&#xff1a; 1.MQ-7传感器检测CO气体浓度&#xff1b; 2.LCD1602实时显示气体浓度及上限值&#xff1b; 3.气体浓度超过设定对应上限值&#xff0c;电机转动&…

MySQL事务

事务&#xff08;Transaction&#xff09;是数据库管理系统中一组操作的集合&#xff0c;作为一个单元要么全部成功&#xff0c;要么全部失败&#xff0c;确保数据的一致性和完整性。它像一个“原子操作单元”&#xff0c;遵循ACID原则&#xff08;原子性、一致性、隔离性、持久…

C# 反射与特性:深入探索运行时类型系统与元数据编程

在C#开发中&#xff0c;我们通常编写静态类型的代码——编译器在编译时就知道所有类型信息。然而&#xff0c;.NET框架提供了一套强大的机制&#xff0c;允许我们在运行时检查、发现和使用类型信息&#xff0c;这就是反射(Reflection)。而与反射密切相关的另一项技术是特性(Att…

腾讯面试手撕题:返回行递增有序矩阵第k小的元素

题目 给定一个n行n列的矩阵&#xff0c;这个矩阵的每一行是递增有序的&#xff0c;求这个矩阵中第k小的元素。 解答 优解 基于二分查找和按行统计小于等于目标值的元素个数。算法的时间复杂度为&#xff0c;其中D是矩阵中元素值域的范围&#xff08;即最大值与最小值的差&a…

【PostgreSQL 02】PostgreSQL数据类型革命:JSON、数组与地理信息让你的应用飞起来

PostgreSQL数据类型革命&#xff1a;JSON、数组与地理信息让你的应用飞起来 关键词 PostgreSQL高级数据类型, JSONB, 数组类型, PostGIS, 地理信息系统, NoSQL, 文档数据库, 空间数据, 数据库设计, PostgreSQL扩展 摘要 PostgreSQL的高级数据类型是其区别于传统关系数据库的核心…

[Windows] 剪映 视频编辑处理

附链接&#xff1a;夸克网盘分享&#xff08;点击蓝色字体自行保存下载&#xff09;

NW994NX734美光固态闪存NX737NX740

NW994NX734美光固态闪存NX737NX740 在数字化浪潮汹涌澎湃的今天&#xff0c;数据存储技术如同一座坚实的基石&#xff0c;支撑着科技世界的大厦。美光固态闪存以其卓越的性能和创新的技术&#xff0c;在存储领域占据着重要的地位。本文将深入剖析NW994、NX734、NX737以及NX740…