1

CQLinq クエリを単純な C# LINQ クエリに移植することはできますか?

NDepend API を使用してコード アナライザー ツールを作成しており、CQLinq クエリを使用したいと考えています。

移植しやすいものもあります。例えば、

from m in Methods
where m.ILCyclomaticComplexity > 10 
orderby m.ILCyclomaticComplexity descending
select new { m }

に簡単に移植できます

using NDepend.CodeModel;
using NDepend.CodeQuery;

public List<IMethod> GetUnitTestFromType(ICodeBase codeBase)
{
    var complexMethods = (from m in codeBase.Application.Methods
                      where m.ILCyclomaticComplexity > 10
                      orderby m.ILCyclomaticComplexity descending
                      select m).ToList();
    return complexMethods;
} 

しかし、より強力な CQLinq メソッド、つまり AllowNoMatch() を使用したいと思います

from t in codeBase.Application.Types
where t.Implement("System.IDisposable".AllowNoMatch())
select t;

実際、CQLinq クエリを直接使用するのは素晴らしいことです。どのように?

CreateQuery、Compile、Execute などのメソッドを含む NDepend.CodeQuery 名前空間があることがわかります。誰かが私に使用例を見せてもらえますか?

ありがとう!

4

1 に答える 1