LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# 中 Predicate 泛型委托详解

admin
2025年4月4日 14:37 本文热度 96

Predicate泛型委托:表示定义一组条件并确定指定对象是否符合这些条件的方法。此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素。 Predicate<T> 通常用于集合的筛选或搜索操作,比如在 List<T> 的 Find 或 Exists 方法中使用。

常见用法

在列表中查找元素:
可以使用 Predicate<T> 在集合中查找符合特定条件的元素。

using System;
using System.Collections.Generic;

List<int> numbers = new List<int> { 123456789 };

// 使用 Predicate 查找第一个偶数
Predicate<int> isEven = num => num % 2 == 0;

// 查找第一个偶数
int evenNumber = numbers.Find(isEven);

Console.WriteLine("第一个偶数是: " + evenNumber);

输出:

第一个偶数是: 2

检查列表中是否存在某个元素:
Predicate<T> 可以用来检查集合中是否有元素满足特定的条件。

List<int> numbers = new List<int> { 123456789 };

// 使用 Predicate 判断是否有大于 5 的数字
Predicate<int> isGreaterThanFive = num => num > 5;

// 检查是否存在符合条件的数字
bool exists = numbers.Exists(isGreaterThanFive);

Console.WriteLine("是否有大于 5 的数字? " + exists);

输出:

是否有大于 5 的数字? True

与 List<T>.RemoveAll 一起使用:
Predicate<T> 可以用来从集合中删除满足某个条件的元素。

using System;
using System.Collections.Generic;

List<int> numbers = new List<int> { 123456789 };

// 使用 Predicate 删除所有偶数
Predicate<int> isEven = num => num % 2 == 0;

// 删除所有偶数
numbers.RemoveAll(isEven);

Console.WriteLine("删除偶数后的剩余数字:");
foreach (var num in numbers)
{
    Console.WriteLine(num);
}

输出:

删除偶数后的剩余数字:
1
3
5
7
9

使用 Lambda 表达式和 Predicate

可以通过 lambda 表达式来简洁地定义一个 Predicate<T>,如上面示例中的 num => num % 2 == 0

总结

  • • Predicate<T> 是一个委托类型,它接受一个类型为 T 的参数并返回一个布尔值。
  • • 它常用于对集合进行筛选、查找或者验证元素是否满足特定条件。
  • • List<T> 类中有如 FindExists 和 RemoveAll 等方法可以接受 Predicate<T>,用于对集合进行操作。


阅读原文:原文链接


该文章在 2025/4/8 8:39:17 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved