gpt4 book ai didi

c# - Expression.Call 中的 ToUpper()

转载 作者:行者123 更新时间:2023-11-30 19:18:05 25 4
gpt4 key购买 nike

下面的代码有效,但我想介绍一个 ToUpper()

var predicate =
Expression.Lambda<Func<T, bool>>(
Expression.Call(
Expression.PropertyOrField(parameter, "FirstName"),
"Contains", null,
Expression.Constant("myvalue".ToUpper())), parameter
);

结果是:

{Param_0 => Param_0.FirstName.Contains("MYVALUE")}

但我想要这样:

{Param_0 => Param_0.FirstName.ToUpper().Contains("MYVALUE")}

我该如何改变?

最佳答案

只需添加一个Expression.Call:

var predicate =
Expression.Lambda<Func<T, bool>>(
Expression.Call(
Expression.Call( // <=== this one is new
Expression.PropertyOrField(parameter, "FirstName"),
"ToUpper", null),
"Contains", null,
Expression.Constant("myvalue".ToUpper())), parameter
);

然后报告自己为:

Param_0 => Param_0.FirstName.ToUpper().Contains("MYVALUE")

关于c# - Expression.Call 中的 ToUpper(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13986573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com