如何使用CQLinq在单个查询中获取方法和字段的度量



我正在NDepend中用CQLinq计算标识符的平均长度,我想得到类、字段和方法名称的长度。我浏览了CQlinq的这一页:http://www.ndepend.com/docs/cqlinq-syntax,我有这样的代码:

let id_m = Methods.Select(m => new { m.SimpleName, m.SimpleName.Length })
let id_f = Fields.Select(f => new { f.Name, f.Name.Length })
select id_m.Union(id_f)

它不起作用,一个错误说:

"System.Collections.Generic.IEnumerable"不包含"联合"的定义。。。

另一个是:

无法从转换"System.Collections.Generic.IEnumerable"到"System.Collections.Generic.HashSet"

但是,根据MSDN,IEnumerable Interface定义了Union()和Concat()方法。

在我看来,我不能像Linq那样使用CQLinq。无论如何,有没有一种方法可以在单个查询中从类型、方法和字段域获取信息?

非常感谢。

有没有一种方法可以在单个查询中从类型、方法和字段域获取信息?

现在不行,因为CQLinq查询只能匹配类型序列、方法序列或字段序列,所以需要3个不同的代码查询。

对于下一个版本CQLinq,将有很大的改进,事实上,您将能够编写以下内容:

from codeElement in Application.TypesAndMembers 
select new { codeElement, codeElement.Name.Length }

下一个版本将在2016年底前推出。

相关内容

  • 没有找到相关文章

最新更新