相关疑难解决方法(0)

表达式<Func <T,bool >>来自F#func

在linq中,.需要一个Expression>谓词,我可以用F#编写

<@ fun item:'a -> condition @>    // Expr<'a -> bool>
Run Code Online (Sandbox Code Playgroud)

我正在使用FSharp.Powerpack从引用构建表达式,但它给我的是一个MethodCallExpression.看起来很深,powerpack代码正确构建了lambda,但是将它包装在Convert调用中(为什么会这样?).我想知道是否将参数转换为方法调用(一个lambda)最终会给我表达式>我需要.

所以问题是转换调用的原因,以及如何使用Func签名实际获取lambda.

linq f#

9
推荐指数
2
解决办法
1857
查看次数

如何将Linq表达式从F#传递给C#代码

ReactiveUI的方法有像

public static ReactiveUI.ObservableAsPropertyHelper<TRet> 
  ObservableToProperty<TObj, TRet>(
    this TObj This, 
    System.IObservable<TRet> observable, 
    System.Linq.Expressions.Expression<System.Func<TObj, TRet>> property, 
    TRet initialValue = null, 
    System.Reactive.Concurrency.IScheduler scheduler = null
  )
Run Code Online (Sandbox Code Playgroud)

在F#中我如何构造一个像这样的对象

System.Linq.Expressions.Expression<System.Func<TObj, TRet>> property, 
Run Code Online (Sandbox Code Playgroud)

在C#中,我会做类似的事情

this.ObservableAsPropertyHelper(
    observable,
    me => me.MyProperty
)
Run Code Online (Sandbox Code Playgroud)

编辑

我试过了

m.ObservableToProperty(this, value, fun me -> me.Property )
Run Code Online (Sandbox Code Playgroud)

m.ObservableToProperty(this, 
            value, 
            new Linq.Expression.Expression(fun me -> me.Property )
Run Code Online (Sandbox Code Playgroud)

但都没有工作

c# linq f#

6
推荐指数
1
解决办法
793
查看次数

标签 统计

f# ×2

linq ×2

c# ×1