zoukankan      html  css  js  c++  java
  • List<T> 删除指定元素

    不能用的方法

    • 不能使用Foreach遍历
    • 不能使用for正序遍历

    常用的方法有三种:

    • 一、使用for 倒序删除
    • 二、使用 linq where方法
    • 三、使用 RemoveAll方法

    测试代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    
    namespace List删除元素几种方式
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<string> list = new List<string>() {
                    "刘德华",
                    "张学友",
                    "刘德华",
                    "刘德华",
                };
    
                Console.WriteLine("原数据:");
    
                foreach (var item in list)
                {
                    Console.WriteLine(item);
                }
                Console.WriteLine("
    ");
    
                /** 下面使用几种不同的方法删除刘德华 **/
    
                //使用 linq where方式
                List<string> list1= list.Where(x => x != "刘德华").ToList();
    
                Console.WriteLine("方案一(使用linq where)删除“刘德华”:");
    
                foreach (var item in list1)
                {
                    Console.WriteLine(item);
                }
    
                List<string> list2 = list;
    
                //使用 linq RemoveAll
                list2.RemoveAll(x => x == "刘德华");
    
                Console.WriteLine("
    ");
                Console.WriteLine("方案二(使用 RemoveAll)删除“刘德华”:");
                foreach (var item in list2)
                {
                    Console.WriteLine(item);
                }
    
                List<string> list3 = list;
                //使用 for 倒序
                for (int i = list3.Count-1; i >0; i--)
                {
                    if (list3[i] == "刘德华") list3.RemoveAt(i);
                }
    
                Console.WriteLine("
    ");
                Console.WriteLine("方案二(for倒序遍历)删除“刘德华”:");
                foreach (var item in list3)
                {
                    Console.WriteLine(item);
                }
    
                Console.ReadKey();
    
            }
        }
    }

    测试结果:

  • 相关阅读:
    MArkdown使用转
    吴恩达deep learning笔记。
    TCP状态转换图
    TCP关闭的四次握手
    SYN的中发送若干的TCP选项
    Ubuntu系统中切换root用户的命令,总忘了sudo
    logistic regression recap
    二分分类中的logistic回归(regression)
    UNIX下的网络族分类,IPv4和IPv6协议族
    11.8模拟赛
  • 原文地址:https://www.cnblogs.com/shingkwan/p/10154474.html
Copyright © 2011-2022 走看看