List的clear()方法和removeAll()方法 的区别

示例代码

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

示例代码具体操作简介

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值。

 

程序运行结果

 List的clear()方法和removeAll()方法 的区别

 

结果分析

执行ListClear方法和RemoveAll方法,List将清除指定元素,同时修改Count属性值,而Capacity属性值保持不变。

Clear方法和RemoveAll方法的区别是:Clear方法会清空所有元素,RemoveAll方法会清空满足指定条件的元素,当将条件设置为恒成立时,也会删除所有元素。

下面给出的代码删除了intList列表中元素为偶数的项。

[csharp] view plain copy
  1. using System;  
  2. using System.Collections.Generic;  
  3.    
  4. namespace ListClearExp  
  5. {  
  6.     class Program  
  7.     {  
  8.         static void Main(string[] args)  
  9.         {  
  10.             List<int> intList = new List<int>();  
  11.             for (int i = 1; i <= 5; i++)  
  12.             {  
  13.                 intList.Add(i);  
  14.                 Console.WriteLine("第" + i + "个元素为:" + i);  
  15.             }  
  16.             intList.RemoveAll(it => it % 2 == 0);  
  17.             foreach (int i in intList)  
  18.             {  
  19.                 Console.WriteLine(i);  
  20.             }  
  21.         }  
  22.     }  
  23. }  
代码运行结果如下所示。

 List的clear()方法和removeAll()方法 的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。