zoukankan      html  css  js  c++  java
  • C# List集合类常用操作:四、删除

    Clear()    从 List<T> 中移除所有元素。
    List<Employees> employees = new List<Employees>();
    employees.Add(new Employees { Id = 1, Name = "Nancy.Davolio", City = "Seattle", BirthDate = Convert.ToDateTime("1948-12-08") });
    employees.Add(new Employees { Id = 2, Name = "Andrew.Fuller", City = "Tacoma", BirthDate = Convert.ToDateTime("1952-02-19") });
    employees.Add(new Employees { Id = 3, Name = "Janet.Leverling", City = "Kirkland", BirthDate = Convert.ToDateTime("1963-08-30") });
    employees.Add(new Employees { Id = 4, Name = "Margaret.Peacock", City = "Redmond", BirthDate = Convert.ToDateTime("1937-09-19") });
    employees.Add(new Employees { Id = 5, Name = "Steven.Buchanan", City = "London", BirthDate = Convert.ToDateTime("1955-03-04") });
    Console.WriteLine("Clear清空前" + employees.Count + " " + employees.Capacity);  //Count=5  Capacity = 8
    employees.Clear(); //Count=0 
    employees.TrimExcess(); //Capacity = 0
    Console.WriteLine("Clear清空后" + employees.Count + " " + employees.Capacity);
    Remove(T)    从 List<T> 中移除特定对象的第一个匹配项。
    List<Employees> employees = new List<Employees>();
    employees.Add(new Employees { Id = 1, Name = "Nancy.Davolio", City = "Seattle", BirthDate = Convert.ToDateTime("1948-12-08") });
    employees.Add(new Employees { Id = 2, Name = "Andrew.Fuller", City = "Tacoma", BirthDate = Convert.ToDateTime("1952-02-19") });
    employees.Add(new Employees { Id = 3, Name = "Janet.Leverling", City = "Kirkland", BirthDate = Convert.ToDateTime("1963-08-30") });
    employees.Add(new Employees { Id = 4, Name = "Margaret.Peacock", City = "Redmond", BirthDate = Convert.ToDateTime("1937-09-19") });
    employees.Add(new Employees { Id = 5, Name = "Steven.Buchanan", City = "London", BirthDate = Convert.ToDateTime("1955-03-04") });
    Console.WriteLine("Remove前" + employees.Count);      //Count = 5      
    
    var emp = employees.FirstOrDefault(e => e.Id == 5);
    //如果成功移除了 true,则为 item;否则为 false。 如果在 false 中没有找到 item,则此方法也会返回 List<T>。
    if (employees.Remove(emp))
    {
        Console.WriteLine("Remove后" + employees.Count);  //Count = 4  
    }
    RemoveAll(Predicate<T>)    删除与指定谓词所定义的条件匹配的所有元素。
    List<Employees> employees = new List<Employees>();
    employees.Add(new Employees { Id = 1, Name = "Nancy.Davolio", City = "Seattle", BirthDate = Convert.ToDateTime("1948-12-08") });
    employees.Add(new Employees { Id = 2, Name = "Andrew.Fuller", City = "Tacoma", BirthDate = Convert.ToDateTime("1952-02-19") });
    employees.Add(new Employees { Id = 3, Name = "Janet.Leverling", City = "Kirkland", BirthDate = Convert.ToDateTime("1963-08-30") });
    employees.Add(new Employees { Id = 4, Name = "Margaret.Peacock", City = "Redmond", BirthDate = Convert.ToDateTime("1937-09-19") });
    employees.Add(new Employees { Id = 5, Name = "Steven.Buchanan", City = "London", BirthDate = Convert.ToDateTime("1955-03-04") });
    Console.WriteLine("RemoveAll前" + employees.Count);      //Count = 5      
    //遍历list中的元素,将符合lambda表达式结果的元素全部删除掉,返回结果是删除掉的元素个数。
    Console.WriteLine("RemoveAll后共删除了" + employees.RemoveAll(e => e.Id >= 3) + "条数据");  //RemoveAll后共删除了3条数据
    
    
    RemoveAt(Int32)    移除 List<T> 的指定索引处的元素。
    List<Employees> employees = new List<Employees>();
    employees.Add(new Employees { Id = 1, Name = "Nancy.Davolio", City = "Seattle", BirthDate = Convert.ToDateTime("1948-12-08") });
    employees.Add(new Employees { Id = 2, Name = "Andrew.Fuller", City = "Tacoma", BirthDate = Convert.ToDateTime("1952-02-19") });
    employees.Add(new Employees { Id = 3, Name = "Janet.Leverling", City = "Kirkland", BirthDate = Convert.ToDateTime("1963-08-30") });
    employees.Add(new Employees { Id = 4, Name = "Margaret.Peacock", City = "Redmond", BirthDate = Convert.ToDateTime("1937-09-19") });
    employees.Add(new Employees { Id = 5, Name = "Steven.Buchanan", City = "London", BirthDate = Convert.ToDateTime("1955-03-04") });
    Console.WriteLine("Remove前" + employees.Count);      //Count = 5      
    //根据下标删除待删除元素的从零开始的索引。
    employees.RemoveAt(4);     //Count = 4 
    //查找删除
    var index = employees.FindIndex(e => e.Id == 5);
    employees.RemoveAt(index);
    Console.WriteLine("Remove后" + employees.Count);  //Count = 4  
    RemoveRange(Int32, Int32)    从 List<T> 中移除一系列元素。
    index Int32 要移除的元素范围的从零开始的起始索引。
    count Int32 要移除的元素数。
    List<Employees> employees = new List<Employees>();
     employees.Add(new Employees { Id = 1, Name = "Nancy.Davolio", City = "Seattle", BirthDate = Convert.ToDateTime("1948-12-08") });
     employees.Add(new Employees { Id = 2, Name = "Andrew.Fuller", City = "Tacoma", BirthDate = Convert.ToDateTime("1952-02-19") });
     employees.Add(new Employees { Id = 3, Name = "Janet.Leverling", City = "Kirkland", BirthDate = Convert.ToDateTime("1963-08-30") });
     employees.Add(new Employees { Id = 4, Name = "Margaret.Peacock", City = "Redmond", BirthDate = Convert.ToDateTime("1937-09-19") });
     employees.Add(new Employees { Id = 5, Name = "Steven.Buchanan", City = "London", BirthDate = Convert.ToDateTime("1955-03-04") });
     Console.WriteLine("RemoveRange" + employees.Count); //Count = 5 
    //根据索引,删除指定条数元素
    var index = employees.FindIndex(e => e.Id == 1);
    employees.RemoveRange(index,
    3);
    Console.WriteLine(
    "RemoveRange后" + employees.Count); //Count = 2
  • 相关阅读:
    Pair Project: Elevator Scheduler
    Project: Individual Project
    【homework week5】初步了解敏捷开发——自由与约束的哲学统一
    【homework #1】第一次作业被虐感受
    To be transfered
    谈敏捷,谈开发 --《Agile Software Development》读后感
    结对编程---附加题作业(作业请参考相应博客)
    结对编程-电梯调度算法的实现 (附加题部分请参考对应博客)
    必应缤纷桌面的必应助手-软件分析和用户市场需求之-----二.体验部分 Ryan Mao (毛宇11061171) (完整版本请参考团队博客)
    对学长所谓“改变世界的游戏”《shield star》的运行感想-毛宇部分(完整版本请参考团队博客)
  • 原文地址:https://www.cnblogs.com/liessay/p/12766726.html
Copyright © 2011-2022 走看看