雇员实体类

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的常用方法相关推荐

  1. List集合_介绍常用方法

    List集合 我们掌握了Collection接口的使用后,再来看看Collection接口中的子类,他们都具备那些特性呢? 接下来,我们一起学习Collection中的常用几个子类(java.util ...

  2. Scala集合List的常用方法:take/flatMap/filter/zip/union/intersect/diff及WordCount集合实现

    take 跟limit作用一样 WordCount 结合flatMap flatMap扁平化 filter过滤 对集合中的元素进行过滤 zip拉链 union并集运算 intersect交集运算 di ...

  3. JAVA集合框架及其常用方法

    List接口和ArrayList类 /*** @author Administrator*学生类*/ public class Student {public String id;public Str ...

  4. Sort方法根据T类某个字段对泛型集合ListT排序

    实现:采用Sort方法根据T类某个字段对泛型集合List<T>排序. 实现代码如下: static void Main(string[] args){List<Stud> st ...

  5. Set 集合以及Set集合的一些常用方法

    set 数组 1.set数组是一个不包含重复元素,无序的元素的集合. 2.set 数组的实现类是HashSet和LinkedHashSet,set接口继承于Collection接口,而Collecti ...

  6. oralce 集合比较 和常用方法

    PL/SQL中没有数组的概念,他的集合数据类型和数组是相似的.在7.3以前的版本中只有一种集合,称为PL/SQL表,在这之后又有两种集合数据类型:嵌套表和varray.其中varray集合中的元素是有 ...

  7. java中集合排序的常用方法总结

    前言      1.集合元素为数字      2.集合元素为对象 前言 平常的开发需求中肯定会遇到对集合排序问题,最常见的排序是在持久层中使用sql进行排序,但是由于业务限制或是其他原因,不能在持久层 ...

  8. 集合-Vector 的常用方法源码及使用场景

    Vector 继承关系 public class Vector<E>extends AbstractList<E>implements List<E>, Rando ...

  9. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_05 List集合_1_List集合_介绍常用方法...

    有序的,还包含索引,允许有重复的值 . add   打印出来的不是地址,说明重写了toString的方法 remove方法 返回的是被移除的元素 set方法 get 索引越界异常 几种越界的异常 转载 ...

  10. java提供的对集合操作的常用方法,并集,交集,差集

    差集和并集 控制台打印: 交集 @Testpublic void testIntersection(){List<String> a = new ArrayList<String&g ...

最新文章

  1. C++ 笔记(09)— 字符串(C 风格字符串、C++字符串 string)
  2. OpenAI NLP最新进展:通过无监督学习提升语言理解
  3. 在.m中的@interface (原创)
  4. 使用localStorage实现历史记录搜索功能也就是天猫app历史记录存储方便浏览
  5. php 输出方法,PHP输出打印方法
  6. Web前后端笔记-vue cli及java进行AES加解密
  7. Calendar导入java,Java程序使用Calendar.add()方法将分钟添加到当前时间
  8. 12306加密传输_前沿一键发送“文图音视频” 支持加密传输、图形密码、保护用户隐私……5G消息要来了!...
  9. Open3d之裁剪点云
  10. Linux操作系统中GDB工具常见用法(一)
  11. 6016.Linux shell脚本编程规范(第1版)
  12. 50套3dmax家具建模详细教程 3dmax床建模教程丨3Dmax基础教程3dmax教学3dmax室内设计教程
  13. 计算机配件对比,基本参数 尺寸对比 接口对比
  14. Verilog时钟n分频
  15. java 兔子生兔子
  16. 电压(电流)运算放大器为什么要增大(减小)输入阻抗?
  17. MODBUS RTU转PROFIBUS DP 转换器怎么接线远创智控
  18. java.net.UnknownHostException:
  19. 阿里云ECS服务器概念理解
  20. 垃圾渗滤液的形成过程!

热门文章

  1. Android开发:toast封装工具类
  2. 计算机课包括什么东西,计算机全课程包括什么?
  3. chrome(谷歌浏览器)固定到任务栏,点击之后出现两个图标
  4. unity期末个人作品-落笔洞寻宝探险之旅(寻宝游戏)
  5. 爬虫学习笔记1:爬虫基本概念
  6. 如何让计算机自动重启,Win7电脑定时重启怎么设置?Win7电脑定时关机怎么设置?...
  7. 解system.img linux,MTK6577---解压system.img
  8. 未来10年,软件开发技术的8个发展趋势
  9. IBM服务器raid5崩溃数据恢复方法
  10. react.js 原生文字下划线标注功能开发