示例代码
using System; using System.Collections.Generic; namespace ListClearExp { class Program { static void Main(string[] args) { List<int> intList = new List<int>(); Console.WriteLine("1. 初始化列表intList:"); Console.WriteLine("intList.Capacity="+intList.Capacity); Console.WriteLine("intList.Count=" + intList.Count+"\n"); Console.WriteLine("2. 向intList列表添加元素:"); for (int i = 1; i <= 5; i++) { intList.Add(i); Console.WriteLine("第"+ i + "个元素为:" + i); } Console.WriteLine("intList.Capacity=" + intList.Capacity); Console.WriteLine("intList.Count=" + intList.Count+"\n"); Console.WriteLine("3. 对intList列表进行Clear操作:"); intList.Clear(); foreach (int i in intList) { Console.WriteLine(i); } Console.WriteLine("intList.Capacity=" + intList.Capacity); Console.WriteLine("intList.Count=" + intList.Count + "\n"); Console.WriteLine("4. 重新初始化intList列表并添加元素:"); intList = new List<int>(); for (int i = 1; i <= 5; i++) { intList.Add(i); Console.WriteLine("第" + i + "个元素为:" + i); } Console.WriteLine("intList.Capacity=" + intList.Capacity); Console.WriteLine("intList.Count=" + intList.Count + "\n"); Console.WriteLine("5. 对intList列表进行RemoveAll操作:"); intList.RemoveAll(it => true); foreach (int i in intList) { Console.WriteLine(i); } Console.WriteLine("intList.Capacity=" + intList.Capacity); Console.WriteLine("intList.Count=" + intList.Count); } } }
示例代码具体操作简介
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方法,List将清除指定元素,同时修改Count属性值,而Capacity属性值保持不变。
Clear方法和RemoveAll方法的区别是:Clear方法会清空所有元素,RemoveAll方法会清空满足指定条件的元素,当将条件设置为恒成立时,也会删除所有元素。
下面给出的代码删除了intList列表中元素为偶数的项。
using System; using System.Collections.Generic; namespace ListClearExp { class Program { static void Main(string[] args) { List<int> intList = new List<int>(); for (int i = 1; i <= 5; i++) { intList.Add(i); Console.WriteLine("第" + i + "个元素为:" + i); } intList.RemoveAll(it => it % 2 == 0); foreach (int i in intList) { Console.WriteLine(i); } } } }
代码运行结果如下所示。