首页 > 编程语言 >C#移除List中特定元素

C#移除List中特定元素

时间:2023-07-14 10:02:19浏览次数:37  
标签:tests seq C# 元素 List 移除 Test

在List里面移除其中一个元素之后,原有的索引以及索引对应的值会发生改变,如果按照原有的索引值删除,就会误删除其它元素。

1.实现思路

原始List为A,将需要删除的元素放到一个List B里面,遍历此List,A再使用Remove依次移除元素。下面代码实现的是移除索引为前两位的元素

2.代码

 


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;

namespace PracticeProject
{
    internal class Program
    {
        static void Main(string[] args)
        {
            ListTest();
            Console.ReadLine();

        }

        public static void ListTest()
        {
            //定义一个元素为Test的集合tests
            List<Test> tests = new List<Test>();
            //向List里面添加元素
            Test test = new Test();
            test.seq = 1; ;
            test.content = "第一";
            tests.Add(test);


            Test test1 = new Test();
            test1.seq = 2; ;
            test1.content = "第二";
            tests.Add(test1);


            Test test2 = new Test();
            test2.seq = 3; ;
            test2.content = "第三";
            tests.Add(test2);

            Test test3 = new Test();
            test3.seq = 4; ;
            test3.content = "第四";
            tests.Add(test3);
            Console.WriteLine("移除之前");
            for (int i = 0; i < tests.Count; i++)
            {
                Console.WriteLine(tests[i].seq + "  " + tests[i].content + " 序列号" + i);
            }
            tests.Remove(tests[1]);
            Console.WriteLine("移除索引为1的元素");
            for (int i = 0; i < tests.Count; i++)
            {
                Console.WriteLine(tests[i].seq + "  " + tests[i].content + " 序列号" + i);
            }

            //定义一个元素类型为Test的集合reamoveList,存放需要删除的元素
            List<Test> reamoveList = new List<Test>();
            int maxValue = tests[tests.Count - 1].seq - 2;
            for (int i = 0; i < tests.Count; i++)
            {
                if (tests[i].seq <= maxValue)
                {
                    reamoveList.Add(tests[i]);

                }
            }
            for (int i = 0; i < reamoveList.Count; i++)
            {
                //删除tests中的元素
                tests.Remove(reamoveList[i]);
            }
            Console.WriteLine("移除之后");
            for (int i = 0; i < tests.Count; i++)
            {
                Console.WriteLine(tests[i].seq + "  " + tests[i].content + " 序列号" + i);
            }
        }
    }
    public class Test
    {
        public int seq { get; set; }
        public string content { get; set; }
    }
}

3.运行结果

 

 

标签:tests,seq,C#,元素,List,移除,Test
From: https://www.cnblogs.com/goodprintf/p/17552875.html

相关文章

  • 20个非常绚丽的HTML5/CSS3应用插件
    基于HTML5的应用现在已经非常广泛,今天我们就来向大家分享20款非常绚丽的HTML5/CSS3应用插件。希望大家喜欢并分享给你的好友们。1、HTML5视频破碎重组特效强大视觉冲击HTML5视频播放器很多,但是HTML5视频特效还是很少见的,这款HTML5视频破碎重组特效非常刺激,给人强大的视觉冲击。......
  • 使用HttpUtil时报javax.net.ssl.SSLHandshakeException: No appropriate protocol异常
    在使用HttpUtil类时,针对某一个接口报错出现异常HttpGetInforesult=HttpUtil.getInfo(token,Url);但是这个getInfoUrl在postman上调用是成功的后来查找后发现问题是:在Java8及高版本以上的版本在调用ssl时会出现javax.net.ssl.SSLHandshakeException:Noappropriateprotoc......
  • centos 编译安装pgsql
    1、安装依赖 yuminstall-yreadlinereadlinereadline-develzlibzlib-devel2、下载安装包https://www.postgresql.org/ftp/source/3、上传服务解压 tar-zxvfpostgresql-9.6.15.tar.gz  4、进入解压目录,configure#将安装目录指定到 /usr/local/postgresql下.......
  • Java Web程序在Tomcat上是如何运行的
    https://blog.csdn.net/fuzhongmin05/article/details/104379514一个JVM是一个进程,JVM上跑Tomcat,Tomcat上可以部署多个应用。这样的话,每个跑在Tomcat上的应用是一个线程吗?如果一个应用crash了,其他应用也会crash吗?理解程序运行时的执行环境,直观感受程序是如何运行的,对我们开发和......
  • 视频融合平台EasyCVR登录后通道数据及菜单栏页面显示异常的排查与解决
    EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。有用户反馈,登录EasyCVR的Web页面,发现设备和分组的信息都......
  • 模块化Common.js与ES6
    为什么要模块化开发1.依赖关系(a文件依赖b文件中的方法,b文件必须在a文件之前引入)2.命名问题(多个文件变量名,方法名相同会出现覆盖)3.代码组织(后期不好维护)模块化规范有1.Common.js规范node,webpack使用的Common.js规范Common.js的导出与引入结论:1.module.expor......
  • 详解在Linux中修改Tomcat使用的jdk版本
    问题分析由于部署个人项目使用了openjdk11,但是我之前安装的是jdk1.8,jdk版本升级的后果就是,tomcat运行的时候报一点小bug(因为之前安装tomcat默认使用了系统的jdk版本)所以就想着把tomcat使用的jdk版本调回原来的,找了很多资料之后,决定在tomcat的运行文件中覆盖使用的jdk版本路径......
  • Spring源码剖析-BeanFactory和ApplicationContext(其一)
    1.在Spring中,BeanFactory和ApplicationContext是两种容器,它们之间的关系是怎样的?我们使用的是哪个?它们的底层原理是什么?以一个SpringBoot的启动类为例:packagecom.example.demo3;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.auto......
  • 获取input[type="checkbox"]:checked 所在tr中特定元素
    1.要求如下 2.html源码<divclass="btn"><buttontype="button"onclick="getYuan()">获取</button></div><divclass="forms"><table><tbody>......
  • antd from 表单中的key 不能绑定input中的字段 Input.js:207 Uncaught (in promise)
    <Formclass="NewVersion"ref="formRef"name="NewVersion":model="formData"><Spacev-for="(newPg,index)informData.version":key="index"style="dis......