1. 程式人生 > >List的clear()方法和removeAll()方法 的區別

List的clear()方法和removeAll()方法 的區別

示例程式碼

  1. using System;  
  2. using System.Collections.Generic;  
  3. namespace ListClearExp  
  4. {  
  5.     class Program  
  6.     {  
  7.         staticvoid Main(string[] args)  
  8.         {  
  9.             List<int> intList = new List<int>();  
  10.             Console.WriteLine("1. 初始化列表intList:");  
  11.             Console.WriteLine("intList.Capacity="
    +intList.Capacity);  
  12.             Console.WriteLine("intList.Count=" + intList.Count+"\n");  
  13.             Console.WriteLine("2. 向intList列表新增元素:");  
  14.             for (int i = 1; i <= 5; i++)  
  15.             {  
  16.                 intList.Add(i);  
  17.                 Console.WriteLine("第"+ i + "個元素為:" + i);  
  18.             }             
  19.             Console.WriteLine("intList.Capacity=" + intList.Capacity);  
  20.             Console.WriteLine("intList.Count=" + intList.Count+"\n");  
  21.             Console.WriteLine("3. 對intList列表進行Clear操作:");  
  22.             intList.Clear();  
  23.             foreach (int i in intList)  
  24.             {  
  25.                 Console.WriteLine(i);  
  26.             }  
  27.             Console.WriteLine("intList.Capacity=" + intList.Capacity);  
  28.             Console.WriteLine("intList.Count=" + intList.Count + "\n");  
  29.             Console.WriteLine("4. 重新初始化intList列表並新增元素:");  
  30.             intList = new List<int>();  
  31.             for (int i = 1; i <= 5; i++)  
  32.             {  
  33.                 intList.Add(i);  
  34.                 Console.WriteLine("第" + i + "個元素為:" + i);  
  35.             }     
  36.             Console.WriteLine("intList.Capacity=" + intList.Capacity);  
  37.             Console.WriteLine("intList.Count=" + intList.Count + "\n");  
  38.             Console.WriteLine("5. 對intList列表進行RemoveAll操作:");  
  39.             intList.RemoveAll(it => true);  
  40.             foreach (int i in intList)  
  41.             {  
  42.                 Console.WriteLine(i);  
  43.             }  
  44.             Console.WriteLine("intList.Capacity=" + intList.Capacity);  
  45.             Console.WriteLine("intList.Count=" + intList.Count);  
  46.         }  
  47.     }  
  48. }  

示例程式碼具體操作簡介

1.初始化列表intList,輸出其Capacity及Count值;

2.向intList列表新增元素並輸出,同時輸出其Capacity及Count值;

3.對intList列表進行Clear操作,同時輸出Clear後的列表元素(很明顯,什麼也不輸出)及Capacity和Count值;

4.重新初始化intList列表並新增元素(與步驟2增加相同元素),同時輸出其Capacity及Count值;

5.對intList列表進行RemoveAll操作(條件為it => true,相當於刪除所有元素),同時輸出RemoveAll操作後的列表元素(很明顯,什麼也不輸出)及其Capacity和Count值。

程式執行結果

 

結果分析

執行ListClear方法和RemoveAll方法,List將清除指定元素,同時修改Count屬性值,而Capacity屬性值保持不變。

Clear方法和RemoveAll方法的區別是:Clear方法會清空所有元素,RemoveAll方法會清空滿足指定條件的元素,當將條件設定為恆成立時,也會刪除所有元素。

下面給出的程式碼刪除了intList列表中元素為偶數的項。

  1. using System;  
  2. using System.Collections.Generic;  
  3. namespace ListClearExp  
  4. {  
  5.     class Program  
  6.     {  
  7.         staticvoid Main(string[] args)  
  8.         {  
  9.             List<int> intList = new List<int>();  
  10.             for (int i = 1; i <= 5; i++)  
  11.             {  
  12.                 intList.Add(i);  
  13.                 Console.WriteLine("第" + i + "個元素為:" + i);  
  14.             }  
  15.             intList.RemoveAll(it => it % 2 == 0);  
  16.             foreach (int i in intList)  
  17.             {  
  18.                 Console.WriteLine(i);  
  19.             }  
  20.         }  
  21.     }  
  22. }  
程式碼執行結果如下所示。