Ich kann ein Zitat vom Typ Expr<'a -> 'b>
in einen Linq-Ausdruck über das folgende Snippet konvertieren:
Nun möchte ich ein Zitat vom Typ Expr<'a * 'b -> 'c>
oder vielleicht sogar Expr<'a -> 'b -> 'c>
in einen Linq Lambda-Ausdruck vom Typ Expression<Func<'a,'b'c>>
umwandeln.
Wie kann ich das tun?
Grüße, forki
Ich bin nicht sicher, ob dies direkt von den im F # PowerPack verfügbaren LINQ-Modulen unterstützt wird. Sie können jedoch Ihre eigene Nachverarbeitung des von F # -Bibliotheken erzeugten LINQ-Ausdrucks implementieren, um ihn in eine C # -Lambda-Funktion der üblichen Form umzuwandeln:
Die folgende Funktion verwendet einen LINQ-Ausdruck, der aus mehreren verschachtelten LambdaExpression
-Ausdrücken eines einzelnen Parameters (dh der vom F # -Übersetzer erzeugten Struktur) besteht und eine Liste von Parametern und dem Hauptteil des innersten Ausdrucks zurückgibt:
Jetzt können Sie es verwenden, um einen gewöhnlichen Func
-Delegenten aus dem Typ wie int -> int -> int -> int
wie folgt abzurufen:
Tags und Links c# linq f# quotations