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 ...
随机推荐
- oracle12 group by 拼接字符串
select listagg(合并字段,'连接符号') within group (order by 排序字段) as 别名 from 表 group by 字段
- Mac解决某些命令失效问题
PS:今天安装groovy,需要设置环境变量,vim -/.bash_profile,然后立马执行了source -/.bash_profile.最后,发现ls,more,vim等常用命令失效了.立马 ...
- [LeetCode] Largest Triangle Area 最大的三角区域
You have a list of points in the plane. Return the area of the largest triangle that can be formed b ...
- 移动端 上传头像 并裁剪功能(h5)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- python连接服务器上传文件,后台执行命令
上传文件 import os import paramikoimport logging from django.core.cache import cache from YunTai import ...
- python经常使用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)
进行协议解析时.总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 废话不多上.直接上样例 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 ...
- python3 参数*args 、 **args 在函数定义和调用中的应用
一.函数调用时 说明:*args 表示解包(解包 列表.元组.字符串类型) #定义函数cn_musql def cn_musql(host,port,user,pwd,db): print(host) ...
- python中删除list元素的方法del()、pop()和remove()
del():根据下标进行删除 In [1]: a = [1, 2, 3, 4, 5] In [2]: del a[0] In [3]: a Out[4]: [2, 3, 4, 5] pop(): 删除 ...
- sqlhelp3
using System; using System.Collections; using System.Collections.Specialized; using System.Data; usi ...
- flink with rabbitmq,sink source mysql redis es
flink-dockerhttps://github.com/melentye/flink-docker https://shekharsingh.com/blog/2016/11/12/apache ...