什么是谓词委托以及应该在哪里使用它?

2023-11-22

你能给我解释一下吗:

  • 什么是谓词委托?
  • 我们应该在哪里使用谓词?
  • 使用谓词时有哪些最佳实践?

描述性源代码将不胜感激。


谓词是一个返回的函数true or false。谓词委托是对谓词的引用。

所以基本上谓词委托是对返回的函数的引用true or false。谓词对于过滤值列表非常有用 - 这是一个示例。

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> list = new List<int> { 1, 2, 3 };

        Predicate<int> predicate = new Predicate<int>(greaterThanTwo);

        List<int> newList = list.FindAll(predicate);
    }

    static bool greaterThanTwo(int arg)
    {
        return arg > 2;
    }
}

现在,如果您使用 C# 3,您可以使用 lambda 以更简洁的方式表示谓词:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> list = new List<int> { 1, 2, 3 };

        List<int> newList = list.FindAll(i => i > 2);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是谓词委托以及应该在哪里使用它? 的相关文章

随机推荐

  • R Shiny - 如何在更新依赖反应图之前更新依赖反应 selectInput

    应用程序结构 我有一个闪亮的应用程序 具有典型的侧边栏面板 主面板结构 侧边栏面板 侧边栏面板中有多个 selectInput 小部件 其中每个 selectInput 中的选择取决于 前一个 selectInput 的选择值 即 用户从
  • Sequelize:错误:错误:表1未与表2关联

    我正在尝试使用sequelize 创建以下关联 但我不断收到以下错误 错误 错误 客户未与订单关联 根据我在文档中发现的内容 我有双向关联 我对问题可能是什么感到困惑 因为当我查看数据库表时 我可以看到外键 对于此示例 我尝试提取与特定订单
  • Jenkins 无法启动硒测试(等待创建配置文件超时)

    Jenkins 无法启动 Selenium 测试 ubuntu 错误 11 26 24 652 信息 启动 org openqa jetty jetty Server ab50cd 11 26 24 738 信息 正在准备 Firefox
  • Google 趋势配额限制

    我试图从 Google 趋势中提取数据 仅尝试了 2 次就收到 您已达到每日限制 错误 有什么办法可以解决这个问题吗 我知道 Google API 项目有特殊的配额限制 但 Google Trends 没有 API 我还读到我们可能需要向它
  • 查找 >2 个文件中的共同元素

    我有三个文件 如下所示 文件1 txt aba 0 0 aba 0 0 1 abc 0 1 abd 1 1 xxx 0 0 文件2 txt xyz 0 0 aba 0 0 0 0 aba 0 0 0 1 xxx 0 0 abc 1 1 文件
  • Composer install -n --ignore-platform-reqs 不忽略 PHP 扩展

    我们有运行的循环构建composer install n ignore platform reqs no dev但这不再忽视平台要求 这是我在圈子日志中看到的 这 ignore platform reqs显然不起作用 有什么想法吗 Your
  • Jersey:“找不到语法元素”是什么意思?

    将 Jersey 从版本 1 15 升级到 1 17 后 它开始记录以下消息 Apr 2 2013 5 13 06 PM com sun jersey server wadl generators AbstractWadlGenerator
  • Django Rest Framework 请求对AllowAny 设置进行身份验证

    我创建了一个JWT 授权应用程序的后端 登录 注销 令牌检索和刷新都工作正常 符合预期 今天早上我添加了一个注册视图 它抛出了通常的情况 detail Authentication credentials were not provided
  • 在Java中获取当前年份的整数值

    我需要将 Java 中的当前年份确定为整数 我可以用java util Date 但它已被弃用 对于 Java 8 及以上版本 int year Year now getValue 对于旧版本的 Java int year Calendar
  • 如何获取从 ButtonGroup 中选择哪个 JRadioButton

    我有一个 Swing 应用程序 其中包含表单上的单选按钮 我有ButtonGroup 但是 查看可用的方法 我似乎无法获取所选的名称JRadioButton 到目前为止 我可以说的是 从 ButtonGroup 中 我可以执行getSele
  • android:字符串格式指定粗体

    我有一个字符串定义在string xml like
  • 为什么我们要在汇编中使用 CPU 寄存器,而不是直接使用内存呢?

    我有一个关于装配的基本问题 如果算术运算也可以在内存上运行 为什么我们还要费心只在寄存器上进行算术运算呢 例如 以下两个原因 本质上 导致计算出相同的值作为答案 片段1 data var dd 00000400h code Start ad
  • Android 音频 - 流式正弦音发生器奇怪的行为

    第一次在这里发布海报 我通常喜欢自己找到答案 无论是通过研究还是反复试验 但我在这里遇到了困难 我正在尝试做的事情 我正在构建一个简单的 Android 音频合成器 现在 我只是实时播放正弦音 用户界面中的滑块会随着用户的调整而改变音调的频
  • window.requestFileSystem() 函数的简单示例

    我有下一个问题 我尝试使用window requestFileSystem Chrome 中可以使用 但失败 看看我的步骤 1 I added allow file access from file flag to Chrome see i
  • 如何使用批处理脚本 ping 多个服务器并返回 IP 地址和主机名?

    所以我必须使用仅批量为了这 基本上 服务器主机名都列在 txt 文件中 我使用以下代码对所有服务器执行 ping 操作并将其结果显示在 txt 文件中 For f i in testservers txt do ping n 1 i gt
  • 我无法使用 knit 生成 \label{fig:mwe-plot}

    我在生成时遇到问题 label 对于使用 knitr 进行绘图时 Rmd文件到一个 md文件通过knitr 然后转换为 pdf via pandoc 我的 MWE Rmd包括如下 r Setup include FALSE results
  • 在 WebBrowser 控件中显示来自流的 PDF

    如何显示 PDF 文档MemoryStream在一个WebBrowser控制 我四处搜索 发现我可以使用以下命令简单地导航到 PDF 文件 webBrowser1 Navigate C Temp ExportedPDF pdf 不过 我想避
  • 将.jar文件导入Scala环境

    即使读完后 Scala jar 文件的问题 我还是有点迷茫 我正在尝试将一些包导入到我的 Scala 文件中 即使添加到类路径后解释器也无法识别它们 一个例子 我有进口声明 import org json4s 我从这里下载了 jar htt
  • Flask 会话忘记请求之间的条目

    我正在使用最新的 Flask Werkzeug Flask 0 9 客户端会话来保存请求之间的信息 会话未设置为持久 因为我可以在浏览器关闭时删除 cookie 我的问题如下 我使用一些服务器端代码来用条目填充 Flask 会话变量 之后
  • 什么是谓词委托以及应该在哪里使用它?

    你能给我解释一下吗 什么是谓词委托 我们应该在哪里使用谓词 使用谓词时有哪些最佳实践 描述性源代码将不胜感激 谓词是一个返回的函数true or false 谓词委托是对谓词的引用 所以基本上谓词委托是对返回的函数的引用true or fa