c# – 将参数从lambda函数更改为lambda表达式

c# – 将参数从lambda函数更改为lambda表达式,第1张

概述我有扩展方法: public static IQueryable<TResult> WithFieldLike<TResult>( this IQueryable<TResult> query, Func<TResult, string> field, string value){ Expression<Func<TResult, bool>> expr = 我有扩展方法:
public static Iqueryable<TResult> WithFIEldlike<TResult>(   this Iqueryable<TResult> query,Func<TResult,string> fIEld,string value){   Expression<Func<TResult,bool>> expr =        trans => fIEld(trans).Contains(value);   return query.Where(expr);}

我需要更改参数字段来键入:Expression>.会是这样的.

public static Iqueryable<TResult> WithFIEldlike<TResult>(   this Iqueryable<TResult> query,Expression<Func<TResult,string>> fIEld,bool>> expr = ???   return query.Where(expr);}

这种方法的调用是:

var query7 = query.WithFIEldlike(trans => trans.DeviceModelNumber,"ber_3");

在这种情况下我应该如何构建“expr”?请帮忙.

解决方法 解构字段并创建一个新表达式,如下所示:
var expr = Expression.Lambda<Func<TResult,bool>> (    Expression.Call (fIEld.Body,typeof (string).getmethod ("Contains"),Expression.Constant (value)),fIEld.Parameters) ;

(根据Maxs在评论中的细化编辑)

总结

以上是内存溢出为你收集整理的c# – 将参数从lambda函数改为lambda表达式全部内容,希望文章能够帮你解决c# – 将参数从lambda函数更改为lambda表达式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1244987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存