在我的WPF应用程序中,我有以下一行:
var windowList = Application.Current.Windows.OfType<Window>().ToList();
这将返回2个结果。这些结果有以下几种类型:
Microsoft.Crm.UnifiedServiceDesk.Desktop
System.Windows.Window
我仅希望返回第二个结果。但是,由于结果#1继承了System.Windows.Window
,因此它包含在结果中。
有没有办法将OfType<T>()
函数限制为 NOT 返回继承的类,还是我必须以另一种方式完成此操作?
答案 0 :(得分:4)
您无法单独使用OfType
来实现此目的,但您可以在之后使用Where
子句:
var windowList = Application.Current.Windows
.OfType<Window>()
.Where(w => w.GetType() == typeof(Window))
.ToList();