使用Roslyn编译Linq表达式

时间:2016-01-15 00:31:22

标签: roslyn linq-expressions

有没有办法在C#中编译以下字符串? string linqExpression = "(seq) => seq.Average()"使用roslyn?

而不是这样做:

SyntaxTree syntaxTree = CSharpSyntaxTree.ParseText(@" using System; 
    using System.Linq; 
    public class RoslynLinq 
    { 
        public void Execute(int[] a) 
        { 
            Func<int[], double> func = (seq) => seq.Average(); 
            Console.WriteLine(func(a)); 
        } 
    }"); 

我可以这样做:

SyntaxTree syntaxTree = CSharpSyntaxTree.ParseText("Func<int[], double> func = (seq) => seq.Select((x)=>x).Average()");

1 个答案:

答案 0 :(得分:1)

听起来你实际上在询问是否可以在没有包含函数或类的情况下解析语句。

只需通过SourceCodeKind.Script即可。