List<T> 删除指定元素
不能用的方法
- 不能使用Foreach遍历
- 不能使用for正序遍历
常用的方法有三种:
- 一、使用for 倒序删除
- 二、使用 linq where方法
- 三、使用 RemoveAll方法
测试代码:
using System; using System.Collections.Generic; using System.Linq; namespace List删除元素几种方式 { class Program { static void Main(string[] args) { List<string> list = new List<string>() { "刘德华", "张学友", "刘德华", "刘德华", }; Console.WriteLine("原数据:"); foreach (var item in list) { Console.WriteLine(item); } Console.WriteLine("\r"); /** 下面使用几种不同的方法删除刘德华 **/ //使用 linq where方式 List<string> list1= list.Where(x => x != "刘德华").ToList(); Console.WriteLine("方案一(使用linq where)删除“刘德华”:"); foreach (var item in list1) { Console.WriteLine(item); } List<string> list2 = list; //使用 linq RemoveAll list2.RemoveAll(x => x == "刘德华"); Console.WriteLine("\r"); Console.WriteLine("方案二(使用 RemoveAll)删除“刘德华”:"); foreach (var item in list2) { Console.WriteLine(item); } List<string> list3 = list; //使用 for 倒序 for (int i = list3.Count-1; i >0; i--) { if (list3[i] == "刘德华") list3.RemoveAt(i); } Console.WriteLine("\r"); Console.WriteLine("方案二(for倒序遍历)删除“刘德华”:"); foreach (var item in list3) { Console.WriteLine(item); } Console.ReadKey(); } } }
测试结果: