C# Error
CS0834 – A lambda expression with a statement body cannot be converted to an expression tree
Reason for the Error & Solution
A lambda expression must have an expression body to be converted to an expression tree.
Lambdas that are translated to expression trees must be expression lambdas; statement lambdas and anonymous methods can only be converted to delegate types.
To correct this error
- Remove the statement from the lambda expression.
Example
The following example generates CS0834:
// cs0834.cs
using System;
using System.Linq;
using System.Linq.Expressions;
public class C
{
public static int Main()
{
Expression<Func<int, int>> e = x => { return x; }; // CS0834
}
}