当前位置: 首页 > news >正文

c#删除数组中符合条件的元素

错误写法

List<int> list = new List<int>() { 1, 2, 3, 4 };
for (int i = 0; i < sz; i++){if (i == 1 || i == 2)list.RemoveAt(i);}

在迭代过程中删除数组元素会有很大的问题,例如删除后位置移动,导致不该被删除的元素被删除。还可能导致数组越界

一种正确写法

using System.Linq; // Where在Linq里
List<int> list = new List<int>() { 1, 2, 3, 4 };
int sz = list.Count;
list = list.Where((val, idx) => (idx != 1 && idx != 2)).ToList();

其他思路:

可以用一个副本记录

            List<int> list = new List<int>() { 1, 2, 3, 4 };List<int> list_backup = new List<int>();int nIndex = 0;int sz = list.Count;//list = list.Where((val, idx) => (idx != 1 && idx != 2)).ToList();for (int i = 0; i < sz; i++){if (i == 1 || i == 2){//list.RemoveAt(i);}else{list_backup.Add(list[i]);}}list = list_backup;
http://www.lryc.cn/news/190786.html

相关文章:

  • sqoop 脚本密码管理
  • 微信小程序使用CryptoJS加密PassWord(MD5)
  • 国有企业合同领域的合规管理
  • Joe主题魔改:正文内容实现图片懒加载
  • 网络爬虫实践小结
  • 逍遥魔兽:如何在服务器上挂机器人?
  • 软件工程与计算总结(九)软件体系结构基础
  • bootz启动 Linux内核涉及do_bootm_linux 函数
  • ipad有必要用手写笔吗?性价比电容笔排行榜
  • jmeter怎样的脚本设计才能降低资源使用
  • 如何避免 IDEA 每次重启都index
  • ImagePreview查看gif图,关闭之后原图不动了
  • 实现基于 GitLab 的数据库 CI/CD 最佳实践
  • android关闭键盘方法
  • ACK 云原生 AI 套件:云原生 AI 工程化落地最优路径
  • 工程企业管理软件源码-综合型项目管理软件
  • stm32mp157中断简单应用
  • 智慧机场数字孪生大屏升级智慧出行全方位服务
  • 微信小程序 js中写一个px单位转rpx单位的函数
  • 第14章总结:lambda表达式与处理
  • 多尺度retinex图像去雾算法matlab仿真
  • 蓝桥等考Python组别十八级005
  • redis在linux系统的安装与使用
  • PanoFlow:学习360°用于周围时间理解的光流
  • C# - 常用API
  • 新式茶饮品牌如何写出生活感软文
  • 使用c++视觉处理----canny 边缘检测、sobel边缘检测、scharr 滤波边缘检测
  • gogs和drone如何配合使用
  • Feign客户端的配置与使用
  • 【数据结构】队列(Queue)实现详解