雇员实体类

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>));
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 >= ));
if (employees.Count>)
{
foreach (Employee emp in employees)
{
Console.WriteLine(emp.ToString());
}
}

   5.RemoveAt(int index) 

移除指定索引处的元素

if (employees.Count>)
{
for (int i=;i<employees.Count;i++)
{
Employee employee = employees[i];
if (employee.DeptName.Equals("市场部"))
{
employees.RemoveAt(i);
}
}
if (employees.Count > )
{
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("王晶", "男", , "市场部");
Employee empTwo = new Employee("陈浩民", "男", , "技术部");
Employee empThree = new Employee("王诗玲", "女", , "市场部");
Employee empFour = new Employee("陈绍聪", "男", , "技术部");
Employee empFive = new Employee("张倩", "女", , "行政部");
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>)
{
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>)
{
foreach (Employee emp in listEmployee)
{
Console.WriteLine(emp.ToString());
}
}
Console.WriteLine("========================="); //FindAll(Predicate<T> match) 检索与指定谓词定义的条件匹配的所有元素
List<Employee> empList = employees.FindAll(p=>(p.EmpAge>));
if (empList.Count>)
{
foreach (Employee emp in empList)
{
Console.WriteLine(emp.ToString());
}
}
Console.WriteLine("========================="); //RemoveAll(Predicate<T> match) 移除与指定的谓词所定义的条件相匹配的所有元素
employees.RemoveAll(p => (p.EmpAge >= ));
if (employees.Count>)
{
foreach (Employee emp in employees)
{
Console.WriteLine(emp.ToString());
}
}
Console.WriteLine("========================="); //RemoveAt(int index) 移除指定索引处的元素
if (employees.Count>)
{
for (int i=;i<employees.Count;i++)
{
Employee employee = employees[i];
if (employee.DeptName.Equals("市场部"))
{
employees.RemoveAt(i);
}
}
if (employees.Count > )
{
foreach (Employee emp in employees)
{
Console.WriteLine(emp.ToString());
}
}
} Console.ReadLine();
}
}
}

C#-----集合List<T>的常用方法的更多相关文章

  1. python学习笔记_集合的定义和常用方法

    1.认识集合 定义: s={1,2,3,4,5} s=set("hello") s=set(["steven","job","da ...

  2. list集合的介绍和常用方法

    List接口介绍 java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象成为List集合.在List集合中允许出现重复的元素,所 ...

  3. python数据类型之集合(set)和其常用方法

    集合是一个无序的,不重复的数据组合 作用(集合的重点):1.去重,把一个列表变成集合就自动去重了2.关系测试,测试两组数据库之前的交集.差集.并集等关系 s = {1, 1, 2, 2, 3, 4, ...

  4. Java List集合的介绍与常用方法

    List接口的介绍 List接口简介: java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合. 在List集合 ...

  5. Collections集合工具类的常用方法

    Collections集合工具类的方法 addAll与shuffle import java.util.ArrayList; import java.util.Collections; /* - ja ...

  6. 集合、set以及HASH

    集合的数据结构数据结构就是内存中保存输出数据的形式,不同的数据结构会有不同的特征.堆栈结构:先进后出 代表类(stack):应用场景:java中的方法运行时所占用的空间就是这种结构.队列结构:先进先出 ...

  7. Map接口下的集合和泛型理解

    一.Map接口 1. Map接口就是最顶层了,上面没有继承了.Map是一个容器接口,它与前面学的List.Set容器不同的是前面学的这些容器,一次只能传入一个元素,但是Map容器一次可以传入一对元素( ...

  8. 06_Java基础语法_第6天(自定义类、ArrayList集合)_讲义

    今日内容介绍 1.自定义类型的定义及使用 2.自定义类的内存图 3.ArrayList集合的基本功能 4.随机点名器案例及库存案例代码优化 01引用数据类型_类 * A: 数据类型 * a: java ...

  9. Java从零开始学二十三(集合Map接口)

    一.Map接口 Collection.Set.List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key à v ...

随机推荐

  1. java @Override 报错解决

    有时候Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多. 这是jdk的问题,@ ...

  2. js来判断设备类型

    function deviceType(){ var ua = navigator.userAgent; var agent = ["Android", "iPhone& ...

  3. weblogic10.3 启动报错 Unrecognized option: -jrockit Error: Could not create the Java Virtual Machine

    今天在使用weblogic10.3+jdk7创建domain的时候,建好domain后启动报如下错误信息: Unrecognized option: -jrockitError: Could not ...

  4. JavaScript函数表达式与函数声明

    什么是函数? 函数是事件驱动或者被调用时执行的重复代码块. 作用域: 1. 全局作用域 2. 函数作用域(局部作用域) var i = 100; //全局作用域 function fun(){ var ...

  5. redis的编译安装

    参考文献 https://www.cnblogs.com/JiangLe/p/5878160.html https://www.cnblogs.com/stulzq/p/9288401.html re ...

  6. [LeetCode] Kth Largest Element in a Stream 数据流中的第K大的元素

    Design a class to find the kth largest element in a stream. Note that it is the kth largest element ...

  7. 长连接锁服务优化实践 C10K问题 nodejs的内部构造 limits.conf文件修改 sysctl.conf文件修改

    小结: 1. 当文件句柄数目超过 10 之后,epoll 性能将优于 select 和 poll:当文件句柄数目达到 10K 的时候,epoll 已经超过 select 和 poll 两个数量级. 2 ...

  8. Go并发示例-Pool

    https://mp.weixin.qq.com/s/MBY6l5VxrFPJ4AA8nGeQUQ <Go语言实战>笔记(十六) | Go并发示例-Pool 飞雪无情 异步图书 2017- ...

  9. python摸爬滚打之day33----线程

    1.线程 能够独立运行的基本单位. 进程: 进程是资源分配的最小单位;  每一个进程中至少有一个线程. 线程: 线程是cpu调度的最小单位. 2.创建线程(类似于创建进程) import time f ...

  10. Linux/Windows 应用程序开发

    一.基础知识 虽然写的都是代码,但是代码运行在哪个级别什么位置,还是需要做好定位,这样才心中有数. 1.1 Linux [转载]讲述了中断.系统调用.Linux APIs和Shell的基本知识. 1 ...