LINQ 表达式> 相当于 .Contains()

2024-01-12

有谁知道如何使用 Linq 表达式创建 .Contains(string) 函数,甚至创建谓词来完成此操作

public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> expr1,
      Expression<Func<T, bool>> expr2)
{
    var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>());
    return Expression.Lambda<Func<T, bool>>
               (Expression.OrElse(expr1.Body, invokedExpr), expr1.Parameters);
}

类似的东西会是理想的吗?


public static Expression<Func<string, bool>> StringContains(string subString)
{
    MethodInfo contains = typeof(string).GetMethod("Contains");
    ParameterExpression param = Expression.Parameter(typeof(string), "s");
    var call = Expression.Call(param, contains, Expression.Constant(subString, typeof(string)));
    return Expression.Lambda<Func<string, bool>>(call, param);
}

...

// s => s.Contains("hello")
Expression<Func<string, bool>> predicate = StringContains("hello");

多年以后再看这个问题,我突然意识到对于这个特定的例子有一个更简单的方法:

Expression<Func<string, bool>> predicate = s => s.Contains("hello");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LINQ 表达式> 相当于 .Contains() 的相关文章

随机推荐

  • java 将字符串转换为加密密钥,反之亦然

    我目前正在研究一种将键转换为字符串的方法 反之亦然 它适用于公钥转换 并将私钥转换为字符串 由于某种原因 相同的代码不会将字符串转换回私钥 我只是无法弄清楚 转换器代码为 import java security KeyFactory im
  • 以编程方式更改 UITableView 的高度

    我有一个UITableView我想根据其中包含的单元格数量以编程方式更改其高度 你能帮助我吗 您可以使用此代码 self yourTableView frame CGRectMake x y width noOfCell heightOfO
  • 当脚本运行时,Postgres now() 时间戳不会改变

    我的 PHP 脚本将运行几秒钟 并且我需要随时从 Postgres 数据库获取真实的时间戳 但是当我从 Postgres 获取 current timestamp 时 它总是返回相同的值 这是我的示例脚本 使用 DBAL echo DB d
  • Java中Thread.currentThread().join()的使用

    以下代码取自 Jersey 项目中的示例 看here https github com jersey jersey blob 2 22 1 examples helloworld src main java org glassfish je
  • JavaScript 中的 sCrypt 实现? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人问一个bCrypt 的 JavaScript 实现 https stackoverflow com
  • Python pandas 数据框警告,建议使用 .loc 代替?

    您好 我想通过删除丢失的信息并使所有字母小写来操作数据 但对于小写转换 我收到此警告 E Program Files Extra Python27 lib site packages pandas core frame py 1808 Us
  • 在纯 JavaScript 中进行“同步”AJAX 调用时如何显示“正在加载”?

    我想确保向用户显示结果 因此我进行同步 AJAX 调用 使用异步 AJAX 显示 正在加载 指示器非常简单 示例无处不在 但是当我使用带有 XMLHttpRequest 的同步 AJAX 调用时 加载指示器 GIF 图像根本不显示 有人说在
  • Visual Studio - Nuget - 无法加载源的服务索引

    这是我的 NuGet config
  • Binance API如何计算24小时内的priceChangePercent

    我正在开发自己的应用程序 我想在其中检索 24 小时内的价格数据 我已阅读币安提供的文档 https github com binance exchange binance official api docs blob master res
  • 如何使我的安装项目生成可执行文件?

    我构建了一个小型桌面应用程序 尝试使用安装项目来允许其他用户安装它 但每当我运行此安装程序时 它都不会生成可执行文件 这是我第一次制作安装项目 我的解决方案包含两个项目 一个是安装项目 它安装另一个项目的主要输出 另一个项目是一个 WPF
  • 修复 Lisp 语法

    作为 Lisp 的新手 我想知道 Lisp 语法是否可以 修复 有人说 Lisp 的语法是其最大的优势之一 我不太明白这一点 难道不能用空格 换行和缩进的组合来替换 明显的 括号吗 就像Python一样 在我看来 括号是 Lisp 代码中最
  • 使用要删除的列的参数从 R data.table 中删除多列

    我正在尝试以类似的方式操作多个 data tables 并且想编写一个函数来完成此操作 我想传递一个参数 其中包含将执行操作的列列表 当列的向量声明位于 运算符的左侧时 此方法可以正常工作 但如果它是较早声明的 或传递到函数中 则效果不佳
  • Bootstrap:居中 col-md-5?

    我觉得这是一个很奇怪的问题 但我似乎无法在网上找到解决方案 如果我有一个col md 5 我似乎无法将其居中 据我了解网格系统 如果我选择列大小 1 12 为了控制列的位置 我使用 col offset 所以如果我有一个col md 4 我
  • Dart 运行时检查 switch 语句中的类型

    我在尝试检查 Dart 中某些对象的运行时类型时发现了一些奇怪的行为 让我们举一个简单的例子 main List
  • 如何以编程方式将最小化的无模式 WinForm 带到之前显示的位置?

    为了在单击事件时将无模式 Windows 窗体恢复到其先前的位置 我尝试使用下面所示的代码 但它不起作用 如果我遗漏了什么 请告诉我 public void SetFocus this Focus this BringToFront if
  • MVC 3 从 web.config 中的 AppSettings 获取值

    在普通的 ASP NET Web 表单站点中 我会使用 web configs appsettings 将应用程序设置数据添加到站点 但是 在使用 MVC 3 时 我无法以这种方式检索设置值 首先 有 2 个 web config 文件 第
  • wx.TextCtrl(或底层 GTK+)的多线程问题

    我正在开发一个GUI来启动外部长期运行的后台程序 该后台程序可以通过 stdin 给出输入命令 并使用 stdout 和 stderr 来保持打印输出和错误消息 我在 GUI 中使用 wx TextCtrl 对象来提供输入和打印输出 我当前
  • 允许图像缩小,但不允许拉伸

    我的网站有 4 000 多个页面 每页有 10 个或更多不同大小的 jpeg 图像 我正在努力使该网站对移动设备更加友好 为此 我希望能够缩小图像以适应较小的屏幕 我知道我可以做这样的事情来表明图像可以缩小 img bodyImg widt
  • 下载图像并在 BlackBerry 上显示

    我必须开发一个网址 其中涉及从网址下载图像并在黑莓刺激器中显示 任何人都可以在这方面帮助我吗 此代码将连接给定的 URL 并返回 Bitmap 对象 public static Bitmap connectServerForImage St
  • LINQ 表达式> 相当于 .Contains()

    有谁知道如何使用 Linq 表达式创建 Contains string 函数 甚至创建谓词来完成此操作 public static Expression