我正在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年底前推出。