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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM