ソリューションに特定のメソッドが設定されているとしましょう。メソッドセットのメソッドごとの平均コード行数を取得するにはどうすればよいですか?
これらの数値は通常、各NDependレポートの統計セクション(Sum, Average, Minimum
など)に表示されますが、このような数値のクエリを個別に記述できるようにしたいと思います。
CQLinq クエリは次のようになります。
let totalLinesSum = JustMyCode.Methods.Where(t => t.IsPublic).Sum(t => t.NbLinesOfCode)
let methodsCount = JustMyCode.Methods.Where(t => t.IsPublic).Count()
let result = (double)totalLinesSum / methodsCount
select (double?)result
...またはもう少し洗練された、このクエリは次のようにリファクタリングできます。
// Let define your methods set the way you need
// It is worth removing abstract method that have no LoC
let methodsSet = JustMyCode.Methods.Where(m => m.IsPublic && !m.IsAbstract)
let totalLoc = methodsSet.Sum(t => t.NbLinesOfCode)
let methodsCount = methodsSet.Count()
let avgLoc = (double)totalLoc / methodsCount
select (double?)avgLoc