[英]Query for static type in Linq
When I query for abstract types using Linq, it also grabs static classes.当我使用 Linq 查询抽象类型时,它也会获取静态类。
IEnumerable<Type> FilterInheritable()
{
var q = Assembly.Load("Assembly-CSharp").GetTypes()
.Where(x => x.IsAbstract == true);
return q;
}
Is it possible to filter out the static types?是否可以过滤掉静态类型? Something like this?像这样的东西?
IEnumerable<Type> FilterInheritable()
{
var q = Assembly.Load("Assembly-CSharp").GetTypes()
.Where(x => x.IsAbstract == true)
.Where(x => x.IsStatic != true);
return q;
}
Since static
classes are also sealed
by definition, but abstract
classes cannot be sealed
, you can do this:由于static
类也被定义sealed
,但abstract
类不能被sealed
,你可以这样做:
var q = Assembly.Load("Assembly-CSharp").GetTypes()
.Where(x => x.IsAbstract && x.IsClass && !x.IsSealed);
I added IsClass
to exclude interfaces as well.我还添加了IsClass
来排除接口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.