C#-----集合List<T>的常用方法
雇员实体类
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>的常用方法的更多相关文章
- python学习笔记_集合的定义和常用方法
1.认识集合 定义: s={1,2,3,4,5} s=set("hello") s=set(["steven","job","da ...
- list集合的介绍和常用方法
List接口介绍 java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象成为List集合.在List集合中允许出现重复的元素,所 ...
- python数据类型之集合(set)和其常用方法
集合是一个无序的,不重复的数据组合 作用(集合的重点):1.去重,把一个列表变成集合就自动去重了2.关系测试,测试两组数据库之前的交集.差集.并集等关系 s = {1, 1, 2, 2, 3, 4, ...
- Java List集合的介绍与常用方法
List接口的介绍 List接口简介: java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合. 在List集合 ...
- Collections集合工具类的常用方法
Collections集合工具类的方法 addAll与shuffle import java.util.ArrayList; import java.util.Collections; /* - ja ...
- 集合、set以及HASH
集合的数据结构数据结构就是内存中保存输出数据的形式,不同的数据结构会有不同的特征.堆栈结构:先进后出 代表类(stack):应用场景:java中的方法运行时所占用的空间就是这种结构.队列结构:先进先出 ...
- Map接口下的集合和泛型理解
一.Map接口 1. Map接口就是最顶层了,上面没有继承了.Map是一个容器接口,它与前面学的List.Set容器不同的是前面学的这些容器,一次只能传入一个元素,但是Map容器一次可以传入一对元素( ...
- 06_Java基础语法_第6天(自定义类、ArrayList集合)_讲义
今日内容介绍 1.自定义类型的定义及使用 2.自定义类的内存图 3.ArrayList集合的基本功能 4.随机点名器案例及库存案例代码优化 01引用数据类型_类 * A: 数据类型 * a: java ...
- Java从零开始学二十三(集合Map接口)
一.Map接口 Collection.Set.List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key à v ...
随机推荐
- 图片懒加载、selenium和PhantomJS
1.图片懒加载 1.1 概念及实现原理 图片懒加载是一种网页优化技术.图片作为一种网络资源,在被请求时也与普通静态资源一样,将占用网络资源,而一次性将整个页面的所有图片加载完, 将大大增加页面的首屏加 ...
- Build Tools
构建工具能够帮助你创建一个可重复的.可靠的.携带的且不需要手动干预的构建.构建工具是一个可编程的工具,它能够让你以可执行和有序的任务来表达自动化需求.假设你想要编译源代码,将生成的class文件拷贝到 ...
- ajax项目冲刺01
1.模板引擎 1)模板+数据=>静态页面片段 2)art-template性能较好 分支语法: {{if value}} ... {{/if}} {{if v1}} ... {{else if ...
- React_基本原理_ajax
React 基本原理 初始化显示界面 创建虚拟DOM树 渲染到 原生 DOM 树 绘制界面显示 更新界面 setState() 更新状态机 重新创建虚拟 DOM 树 新/旧树比较差异 (执行一次 DO ...
- [LeetCode] Maximum Depth of N-ary Tree N叉树的最大深度
Given a n-ary tree, find its maximum depth. The maximum depth is the number of nodes along the longe ...
- 1、react-native中expo的真机测试字体不加载的坑
native-base的字体问题Roboto_medium 把native-base中的Fonts文件夹放到项目的根目录. import {Font,AppLoading} from 'expo'; ...
- 取消Fragment切换时间,Fragment+ViewPager静止滑动,去掉默认的滑动效果
import android.content.Context; import android.support.v4.view.ViewPager; import android.util.Attrib ...
- Robot Framework 自动化测试 Selenium2Library 库 用法
Robot Framework自动化测试Selenium2Library库详细用法 一.浏览器驱动 通过不同的浏览器执行脚本. Open Browser Htpp://www.xxx.com ...
- CGI的工作原理
文章摘自https://blog.csdn.net/nyist327/article/details/41049699 CGI是Web服务器和外部程序之间的一个接口.利用CGI程序可以处理从Web上客 ...
- 【Python基础】lpthw - Exercise 43 基本的面向对象分析和设计
1. A game from sys import exit from random import randint from textwrap import dedent # 使可以使用三引号型的字符 ...