C#集合循環刪除某些行

你想要在遍歷集合(例如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.pswp.cn/web/82199.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82199.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82199.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

裂縫儀在線監測裝置:工程安全領域的“實時守衛者”

在基礎設施運維領域&#xff0c;裂縫擴展是威脅建筑結構安全的核心隱患之一。傳統人工巡檢方式存在效率低、時效性差、數據主觀性強等局限&#xff0c;而裂縫儀在線監測裝置通過技術迭代&#xff0c;實現了對結構裂縫的自動化、持續性追蹤&#xff0c;為工程安全評估提供科學依…

Multisim14使用教程詳盡版--(2025最新版)

一、Multisim14前言 1.1、主流電路仿真軟件 1. Multisim:NI開發的SPICE標準仿真工具,支持模擬/數字電路混合仿真,內置豐富的元件庫和虛擬儀器(示波器、頻譜儀等),適合教學和競賽設計。官網:艾默生旗下測試和測量系統 - NI。 2. LTspice XVII:ADI旗下免費高性能SPICE仿…

深度學習篇---人臉識別中的face-recognition庫和深度學習

深度學習方法和使用 Python 的face_recognition庫進行人臉識別在技術原理、實現方式和應用場景上有顯著區別&#xff0c;以下從多個維度對比分析&#xff1a; 一、技術原理 1. 深度學習方法 核心邏輯&#xff1a;基于神經網絡&#xff08;如卷積神經網絡 CNN&#xff09;構建…

Go語言中的數據類型轉換

Go 語言中只有強制類型轉換&#xff0c;沒有隱式類型轉換。 1. 數值類型之間的相互轉換 1.1. 整型和整型之間的轉換 package main import "fmt"func main() {var a int8 20var b int16 40fmt.Println(int16(a) b)// 60 }1.2. 浮點型和浮點型之間的轉換 packag…

行為型:中介者模式

目錄 1、核心思想 2、實現方式 2.1 模式結構 2.2 實現案例 3、優缺點分析 4、適用場景 5、注意事項 1、核心思想 目的&#xff1a;通過引入一個中介對象來封裝一組對象之間的交互&#xff0c;解決對象間過度耦合、頻繁交互的問題。不管是對象引用維護還是消息的轉發&am…

node_modules\node-sass: Command failed.報錯了

node_modules\node-sass: Command failed.錯誤解決 第一步&#xff1a;刪掉:目錄中劃紅線的配置文件 刪掉項目中的node_modules第二步&#xff1a;用admin權限執行&#xff0c;重新配置npm和yarn npm config set registry https://registry.npm.taobao.org --global npm con…

STM32 ADC工作原理與配置詳解

文章目錄 ADCADC簡介逐次逼近型ADCADC框圖ADC框圖的工作流程&#xff08;以規則組為例&#xff09;1. 輸入通道選擇與信號接入2. 觸發轉換&#xff1a;軟件或硬件觸發3. 采樣保持與量化編碼4. 轉換結果處理與存儲5. 狀態標志與中斷6. 參考電壓與時鐘驅動7. 輔助功能&#xff1a…

1、Pytorch介紹與安裝

1、Pytorch介紹 PyTorch 是由 Facebook AI Research (FAIR) 團隊開發并維護的一款開源深度學習框架&#xff0c;于 2016 年首次發布。它因其直觀的設計、卓越的靈活性以及強大的動態計算圖功能&#xff0c;迅速在學術界和工業界獲得了廣泛認可&#xff0c;成為當前深度學習研究…

RedisTemplate查詢不到redis中的數據問題(序列化)

RedisTemplate查詢不到redis中的數據問題(序列化) 一.問題描述 存入Redis中的值取出來卻為null,問題根本原因就是RedisTemplate和StringRedisTemplate的序列化問題、代碼示例&#xff1a; SpringBootTest class Redis02SpringbootApplicationTests {Autowiredprivate RedisTe…

【Net】TCP粘包與半包

文章目錄 TCP粘包與半包1 背景2 粘包&#xff08;packet stick&#xff09;3 半包&#xff08;packet split&#xff09;4 為什么會出現粘包/半包&#xff1f;5 如何解決&#xff1f;6 示例7 總結 TCP粘包與半包 在網絡編程中&#xff0c;粘包和半包問題是常見的 TCP 協議特有…

Leetcode 3566. Partition Array into Two Equal Product Subsets

Leetcode 3566. Partition Array into Two Equal Product Subsets 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3566. Partition Array into Two Equal Product Subsets 1. 解題思路 這一題我的實現還是比較暴力的&#xff0c;首先顯而易見的&#xff0c;若要滿足題目要求&…

QT中更新或添加組件時出現“”qt操作至少需要一個處于啟用狀態的有效資料檔案庫“解決方法”

在MaintenanceTool.exe中點擊下一步 第一個&#xff1a; 第二個&#xff1a; 第三個&#xff1a; 以上任意一個放入資料庫中

52. N-Queens II

題目描述 52. N-Queens II 回溯法 這道題與第51題是一樣的。51. N-Queens-CSDN博客 class Solution {int columns; //從低位到高位起算&#xff0c;第i位為0表示棋盤第i列可以放置皇后&#xff0c;第i位為1表示棋盤第i列不能放置皇后//邊長為n的棋盤分別有2n-1條正斜線和反…

解鎖AI智能Agent的“風格基因”

從“黑箱”到“智能Agent”:LangChain的架構哲學革新 在LangChain出現之前,開發者直接調用LLM API的方式,充滿了“黑箱”操作的挑戰: 緊耦合的業務邏輯與模型調用: 所有的業務邏輯、API調用、記憶管理、錯誤處理等都可能混雜在同一個代碼塊中。這導致代碼脆弱、難以測試,…

大數據運維過程中常見的一些操作

大數據運維是確保大數據系統穩定運行、高效處理數據的關鍵環節。以下是大數據運維過程中常見的一些操作和任務: 1. 集群部署與配置 基礎設施搭建:部署服務器、網絡設備、存儲系統,配置虛擬化環境(如 Docker、Kubernetes)。分布式系統安裝:安裝 Hadoop、Spark、Hive、Kaf…

STM32中,如何理解看門狗

在STM32微控制器中&#xff0c;看門狗&#xff08;Watchdog&#xff09;是一種硬件計時器&#xff0c;用于監控系統運行狀態&#xff0c;防止軟件死鎖或跑飛。其核心機制是&#xff1a;系統需定期“喂狗”&#xff08;復位看門狗計數器&#xff09;&#xff0c;若未及時喂狗&am…

[AI算法] LLM中的gradient checkpoint機制

文章目錄 什么是gradient checkpoint原理使用場景 注意事項 什么是gradient checkpoint gradient checkpoint是一種優化深度學習模型內存使用的技術&#xff0c;尤其在訓練大型模型時非常有用。它通過犧牲計算時間為代價來減少顯存占用。大多數情況下&#xff0c;transformers…

船舶二階非線性響應方程的EKF與UKF參數辨識

船舶二階非線性響應方程的EKF與UKF參數辨識 本文將詳細闡述使用Python實現擴展卡爾曼濾波(EKF)和無跡卡爾曼濾波(UKF)對船舶二階非線性響應方程進行參數辨識的過程。全文包含理論推導、算法實現、仿真驗證及結果分析。—### 1. 船舶二階非線性響應方程建模船舶運動可表示為&am…

【ARM AMBA APB 入門 1.1 -- APB 讀寫寄存器 RTL 實現】

請閱讀【ARM AMBA 總線 文章專欄導讀】 文章目錄 APB 寄存器訪問APB 讀寄存器 RTL 代碼實現APB 寫寄存器 RTL 代碼實現 APB 寄存器訪問 APB 讀寄存器 RTL 代碼實現 APB 總線讀寄存器操作代碼實現&#xff1a; wire [31:0] SOC_PLL_CFG_REG; wire [31:0] SOC_PLL_LOCK_REG; wi…

C++修煉:位圖和布隆過濾器

Hello大家好&#xff01;很高興我們又見面啦&#xff01;給生活添點passion&#xff0c;開始今天的編程之路&#xff01; 我的博客&#xff1a;<但凡. 我的專欄&#xff1a;《編程之路》、《數據結構與算法之美》、《題海拾貝》、《C修煉之路》 1、引言 在計算機科學…