C#-----集合ListT的常用方法
雇员实体类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace TestList {/// <summary>/// 雇员类/// </summary>public class Employee{/// <summary>/// 雇员姓名/// </summary>public string EmpName { get; set; }/// <summary>/// 雇员性别/// </summary>public string EmpSex { get; set; }/// <summary>/// 雇员年龄/// </summary>public int EmpAge { get; set; }/// <summary>/// 雇员部门/// </summary>public string DeptName { get; set; }/// <summary>/// 构造函数/// </summary>/// <param name="empName"></param>/// <param name="empSex"></param>/// <param name="empAge"></param>/// <param name="deptName"></param>public Employee(string empName, string empSex, int empAge, string deptName){EmpName = empName;EmpSex = empSex;EmpAge = empAge;DeptName = deptName;}public override string ToString(){return "Employee[EmpName=" + EmpName + ",EmpSex=" + EmpSex + ",EmpAge=" + EmpAge + ",DeptName=" + DeptName + "]";}} }
1.ForEach(Action<T> action)
对集合的每个元素执行指定操作
List<Employee> listEmps = new List<Employee>();//ForEach(Action<T> action) 对 System.Collections.Generic.List`1 的每个元素执行指定操作employees.ForEach(p =>{if (p.EmpSex.Equals("女")){listEmps.Add(p);}});
2.FindAll(Predicate<T> match)
检索与指定谓词定义的条件匹配的所有元素
List<Employee> empList = employees.FindAll(p=>(p.EmpAge>22));if (empList.Count>0){foreach (Employee emp in empList){Console.WriteLine(emp.ToString());}}
3.Where
基于谓词筛选值序列
List<Employee> listEmployee = employees.Where(p => (p.EmpName.Contains("王"))).ToList();if (listEmployee.Count>0){foreach (Employee emp in listEmployee){Console.WriteLine(emp.ToString());}}
4.RemoveAll(Predicate<T> match)
移除与指定的谓词所定义的条件相匹配的所有元素
employees.RemoveAll(p => (p.EmpAge >= 25));if (employees.Count>0){foreach (Employee emp in employees){Console.WriteLine(emp.ToString());}}
5.RemoveAt(int index)
移除指定索引处的元素
if (employees.Count>0){for (int i=0;i<employees.Count;i++){Employee employee = employees[i];if (employee.DeptName.Equals("市场部")){employees.RemoveAt(i);}}if (employees.Count > 0){foreach (Employee emp in employees){Console.WriteLine(emp.ToString());}}}
完整Demo
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace TestList {class Program{static void Main(string[] args){List<Employee> employees = new List<Employee>();Employee empOne = new Employee("王晶", "男", 20, "市场部");Employee empTwo = new Employee("陈浩民", "男", 24, "技术部");Employee empThree = new Employee("王诗玲", "女", 25, "市场部");Employee empFour = new Employee("陈绍聪", "男", 30, "技术部");Employee empFive = new Employee("张倩", "女", 19, "行政部");employees.Add(empOne);employees.Add(empTwo);employees.Add(empThree);employees.Add(empFour);employees.Add(empFive);List<Employee> listEmps = new List<Employee>();//ForEach(Action<T> action) 对 System.Collections.Generic.List`1 的每个元素执行指定操作employees.ForEach(p =>{if (p.EmpSex.Equals("女")){listEmps.Add(p);}});if (listEmps.Count>0){foreach (Employee emp in listEmps){Console.WriteLine(emp.ToString());}}Console.WriteLine("=========================");//Where 基于谓词筛选值序列List<Employee> listEmployee = employees.Where(p => (p.EmpName.Contains("王"))).ToList();if (listEmployee.Count>0){foreach (Employee emp in listEmployee){Console.WriteLine(emp.ToString());}}Console.WriteLine("=========================");//FindAll(Predicate<T> match) 检索与指定谓词定义的条件匹配的所有元素List<Employee> empList = employees.FindAll(p=>(p.EmpAge>22));if (empList.Count>0){foreach (Employee emp in empList){Console.WriteLine(emp.ToString());}}Console.WriteLine("=========================");//RemoveAll(Predicate<T> match) 移除与指定的谓词所定义的条件相匹配的所有元素employees.RemoveAll(p => (p.EmpAge >= 25));if (employees.Count>0){foreach (Employee emp in employees){Console.WriteLine(emp.ToString());}}Console.WriteLine("=========================");//RemoveAt(int index) 移除指定索引处的元素if (employees.Count>0){for (int i=0;i<employees.Count;i++){Employee employee = employees[i];if (employee.DeptName.Equals("市场部")){employees.RemoveAt(i);}}if (employees.Count > 0){foreach (Employee emp in employees){Console.WriteLine(emp.ToString());}}}Console.ReadLine();}} }
转载于:https://www.cnblogs.com/fengfuwanliu/p/10577311.html
C#-----集合ListT的常用方法相关推荐
- List集合_介绍常用方法
List集合 我们掌握了Collection接口的使用后,再来看看Collection接口中的子类,他们都具备那些特性呢? 接下来,我们一起学习Collection中的常用几个子类(java.util ...
- Scala集合List的常用方法:take/flatMap/filter/zip/union/intersect/diff及WordCount集合实现
take 跟limit作用一样 WordCount 结合flatMap flatMap扁平化 filter过滤 对集合中的元素进行过滤 zip拉链 union并集运算 intersect交集运算 di ...
- JAVA集合框架及其常用方法
List接口和ArrayList类 /*** @author Administrator*学生类*/ public class Student {public String id;public Str ...
- Sort方法根据T类某个字段对泛型集合ListT排序
实现:采用Sort方法根据T类某个字段对泛型集合List<T>排序. 实现代码如下: static void Main(string[] args){List<Stud> st ...
- Set 集合以及Set集合的一些常用方法
set 数组 1.set数组是一个不包含重复元素,无序的元素的集合. 2.set 数组的实现类是HashSet和LinkedHashSet,set接口继承于Collection接口,而Collecti ...
- oralce 集合比较 和常用方法
PL/SQL中没有数组的概念,他的集合数据类型和数组是相似的.在7.3以前的版本中只有一种集合,称为PL/SQL表,在这之后又有两种集合数据类型:嵌套表和varray.其中varray集合中的元素是有 ...
- java中集合排序的常用方法总结
前言 1.集合元素为数字 2.集合元素为对象 前言 平常的开发需求中肯定会遇到对集合排序问题,最常见的排序是在持久层中使用sql进行排序,但是由于业务限制或是其他原因,不能在持久层 ...
- 集合-Vector 的常用方法源码及使用场景
Vector 继承关系 public class Vector<E>extends AbstractList<E>implements List<E>, Rando ...
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_05 List集合_1_List集合_介绍常用方法...
有序的,还包含索引,允许有重复的值 . add 打印出来的不是地址,说明重写了toString的方法 remove方法 返回的是被移除的元素 set方法 get 索引越界异常 几种越界的异常 转载 ...
- java提供的对集合操作的常用方法,并集,交集,差集
差集和并集 控制台打印: 交集 @Testpublic void testIntersection(){List<String> a = new ArrayList<String&g ...
最新文章
- C++ 笔记(09)— 字符串(C 风格字符串、C++字符串 string)
- OpenAI NLP最新进展:通过无监督学习提升语言理解
- 在.m中的@interface (原创)
- 使用localStorage实现历史记录搜索功能也就是天猫app历史记录存储方便浏览
- php 输出方法,PHP输出打印方法
- Web前后端笔记-vue cli及java进行AES加解密
- Calendar导入java,Java程序使用Calendar.add()方法将分钟添加到当前时间
- 12306加密传输_前沿一键发送“文图音视频” 支持加密传输、图形密码、保护用户隐私……5G消息要来了!...
- Open3d之裁剪点云
- Linux操作系统中GDB工具常见用法(一)
- 6016.Linux shell脚本编程规范(第1版)
- 50套3dmax家具建模详细教程 3dmax床建模教程丨3Dmax基础教程3dmax教学3dmax室内设计教程
- 计算机配件对比,基本参数 尺寸对比 接口对比
- Verilog时钟n分频
- java 兔子生兔子
- 电压(电流)运算放大器为什么要增大(减小)输入阻抗?
- MODBUS RTU转PROFIBUS DP 转换器怎么接线远创智控
- java.net.UnknownHostException:
- 阿里云ECS服务器概念理解
- 垃圾渗滤液的形成过程!
热门文章
- Android开发:toast封装工具类
- 计算机课包括什么东西,计算机全课程包括什么?
- chrome(谷歌浏览器)固定到任务栏,点击之后出现两个图标
- unity期末个人作品-落笔洞寻宝探险之旅(寻宝游戏)
- 爬虫学习笔记1:爬虫基本概念
- 如何让计算机自动重启,Win7电脑定时重启怎么设置?Win7电脑定时关机怎么设置?...
- 解system.img linux,MTK6577---解压system.img
- 未来10年,软件开发技术的8个发展趋势
- IBM服务器raid5崩溃数据恢复方法
- react.js 原生文字下划线标注功能开发