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 ...
最新文章
- [正则表达式]文本框输入内容控制
- [BZOJ4557][JLOI2016]侦查守卫
- ASP.NET Core 在 Swagger UI 中显示自定义的 Header Token
- sip gw功能包括_完整SIP/SDP媒体协商概论-SIP/WebRTC概要
- 取消对 null 指针“l”的引用。_C语言编程笔记丨C 语言指针 5 分钟教程
- [渝粤教育] 郑州航空工业管理学院 航空概论 参考 资料
- 熊猫的python小课账号_学习python中的pandas有没有好的教程推荐?
- 计算机专业英语第三章在线测试,《计算机专业英语》第03章在线测试
- Atitit .html5刮刮卡的gui实现总结
- 海南大学信号与系统838报考高频问题整理(4)
- Because You Loved Me歌词
- 毕业设计-基于微信小程序的校园二手书籍交易系统
- 深入理解Toll-Free Bridging
- macOS键盘定制神器Karabiner Elements
- 超好用的画图工具推荐
- HTML中的“雪碧图“详解
- 自签名SSL证书的安全隐患和风险
- 25 年前 Java 诞生,把你对她的热爱大声说出来好吗
- 算法还是算力?周志华微博引爆深度学习的“鸡生蛋,蛋生鸡”问题
- html怎么创建盒子,html布局(盒子)
热门文章
- java excel api及详细教程_针对Java Excel API及详细教程
- 排序算法——归并排序的相关问题
- oracle状态blocked,oracle 监听状态为BLOCKED
- (priority_queue)自定义优先级
- linux闹钟软件下载,电量充满警示闹铃
- java使用计算器完成加法、减法运算
- html5新增的type类型,html5新增的type类型
- matlab搭建的应用层架构逻辑,软件设计的三层架构
- 计算机动画制作 教学设计,《设置动画效果》教学设计
- 【OpenCV 例程200篇】22. 图像添加非中文文字