如何检测一个类是否使用Linq使用Roslyn?

时间:2015-07-26 19:06:15

标签: c# linq roslyn

使用 Roslyn ,我想检测一个班级是否使用 Linq

假设某些代码如下:

//...
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };       
var lowNums = 
    from n in numbers 
    where n < 5 
    select n; 
//...

还假设此代码不包含的文件 using System.Linq;

我希望能够检测到文件中有linq语句,并且(比方说)自动添加using System.Linq。我想检测Linq的查询或方法语法。

有没有办法可以使用Roslyn检测到这个?我只是想知道代码是否使用Linq,并且不想进行任何进一步的处理。

1 个答案:

答案 0 :(得分:4)

给定语法树,您只需搜索SyntaxKind.QueryExpression或相关节点类型的节点。

有关更多信息,请在VS2015中打开该文件,然后查看语法可视化工具以查看语法树的确切内容。