ListT.Find用法学习
泛型集合List<T>中的Find函数用于查找集合中符合指定条件的元素..相比foreach遍历元素,用Find函数查找,代码更简洁.
函数原型如下:
public T Find(Predicate<T> match);
其中Predicate为C#定义好的委托,原型如下:
public delegate bool Predicate<in T>(T obj);
所以,List.Find函数的参数,就是一个 返回值为bool,入参为T类型的函数.当然,可以是命名函数也可以是匿名函数或Lambda表达式..
示例如下:
//定义一个Person类
class Person
public string Name { get; set; }
}
{
//定义一个Predicate类型的委托变量
private static Predicate<Person> pre = new Predicate<Person>(MyPredicate);
{
bool result = false;
if (p.Name == "张三")
result = true;
return result;
}
static void Main(string[] args)
{
try
{
List<Person> lstPerson = new List<Person>()
{
new Person { Name = "张三", Age = 10, Gender = "M" },
new Person { Name = "李四", Age = 11, Gender = "M" },
new Person { Name = "王五", Age = 12, Gender = "M" },
new Person { Name = "赵六", Age = 13, Gender = "M" },
new Person { Name = "张三", Age = 33, Gender = "F" }
};
Person p1 = lstPerson.Find(pre);//1、命名函数
Person p2 = lstPerson.Find(delegate (Person s) { return s.Name.Equals("王五"); });//2、匿名函数
Person p3 = lstPerson.Find(s => { return s.Name.Equals("赵六"); });//3、Lambda表达式
Console.WriteLine($"姓名:{p1.Name},年龄:{p1.Age}性别:{p1.Gender}");
Console.WriteLine($"姓名:{p2.Name},年龄:{p2.Age}性别:{p2.Gender}");
Console.WriteLine($"姓名:{p3.Name},年龄:{p3.Age}性别:{p3.Gender}");
}
catch (Exception ea)
{
Console.WriteLine($"异常:{ea.Message}");
}
Console.ReadKey();
}
}
PS:List<T>.Find 返回的是符合条件的一个元素.若没有,则返回T类型的默认值
List<T>.FindLast 返回符合条件最后一个元素.若没有,则返回T类型的默认值
List<T>.FindAll 返回符合条件的元素集合,即List<T>的子集.
List<T>.FindIndex 返回符合条件的第一个元素的下标.下标从0开始.. 若没有,则返回-1
List<T>.FindLastIndex 返回符合条件的最后一个元素的下标.下标从0开始.. 若没有,则返回-1
转载于:https://www.cnblogs.com/lylongs/p/9650465.html
ListT.Find用法学习相关推荐
- mysql explain 实例_Mysql实例mysql explain用法学习
<Mysql实例mysql explain用法学习>要点: 本文介绍了Mysql实例mysql explain用法学习,希望对您有用.如果有疑问,可以联系我们. 导读:本节内容:mysql ...
- raphael用法学习
最近公司项目中需要绘图,就去学习了raphael插件,先介绍下这个插件吧 Raphael 是一个用于在网页中绘制矢量图形的 Javascript 库.它使用 SVG W3C 推荐标准和 VML 作为创 ...
- ModelAndView绑定数据模型配合Thymeleaf渲染数据用法学习
分开介绍,大致说一下ModelAndView ModelAndView是Spring MVC里面重要的组成部分.分为两部分Model和View,Model是后端的返回值,View指的视图.先回忆一下当 ...
- SQL语言的基本用法——学习笔记
SQL语言的基本用法 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系 ...
- Typedef用法学习
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中.typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些 ...
- C# ListT泛型用法
C# List<T>用法 所属命名空间:using System.Collections.Generic; List<T>类是 ArrayList 类的泛型等效类. 该类使用 ...
- strace用法学习
一.strace是什么? 按照strace官网的描述,strace是一个可用于诊断.调试和教学的Linux用户空间跟踪器.我们用它来监控用户空间进程和内核的交互,比如系统调用.信号传递.进程状态变更等 ...
- Linux中rename和mv命令用法学习修改文件名区别和总结
如何用命令修改文件名呢?在Linux下可以用rename命令,当然还可以使用mv命令,这里分享下Linux rename命令的用法. 有一部分人说Linux下没有rename命令,建议大家用mv命令. ...
- Android事件总线 EventBus3.0用法学习
http://blog.csdn.net/itachi85/article/details/52205464 1.EventBus的三要素 Event:事件,可以是任意类型的对象. Subscribe ...
最新文章
- Java 16 正式发布!你还学得动吗?
- VTK:可视化之MovableAxes
- URAL1204. Idempotents(扩展欧几里得)
- Thrift第三课 编写脚本
- android自动跑马灯,Android-最强跑马灯
- 史上最全的常用事件:移动端事件及PC端:鼠标/键盘/表单事件
- 图像处理基本概念——卷积,滤波,平滑
- 【数据库原理及应用教程】【数据库系统的体系结构】【1.4-1.6】
- 自动控制原理分析工作原理以及方框图做题过程
- 从7654浏览器卸载到安装360安全卫士
- python 读取TXT文件数据(字符或数值)存放在numpy数组中以及训练集测试集的处理(1)(个人笔记)
- gif表情制作软件怎么制作gif动图
- LVS负载均衡群集(NAT模式)
- 我理解的MOOC的重要性
- 时间都去哪了--你统计过你每天花在手机上的时间么?
- 电路中滤波电容和退耦电容_怎么分清滤波电容、去耦电容、旁路电容
- Elasticsearch生产实战(ik分词器、拼音分词、自动补全、自动纠错)
- 商业级saas开源电商小程序项目
- 踔厉奋发,笃行不怠!CASAIM 喜获2022年创新指标完成奖
- LoadRunner12_脚本中运行JavaScrip
热门文章
- Docker exec 命令执行出错, 显示 the input device is not aTTY 的解决办法
- html+dom+深入,DOM 深入学习 - 1
- 设计模式---适配器设计模式
- php求链表中位数,先给伸手党的php链表遍历求和
- ajax 链接java_如何使用ajax将下拉菜单链接到表
- php相隔几分钟变换随机数,PHP怎么固定随机出号几分钟时间再变?
- 资阳停车场系统推荐_详细讲解停车场管理车牌识别系统安装
- 为什么说ip协议是无连接协议
- php里面没有mssql,为什么没有正确使用PHP / MSSQL的日期/时间?
- Java 获取链表的元素