C# - 使用OfType并忽略继承的类

Jon*_*Jon 9 c# linq generics c#-3.0

我有一个包含很多项目的MenuStrip,并且我试图参与他们所有订阅的活动,所以我正在努力做到menuStrip1.Items.OfType<ToolStripMenuItem>();每个人都这样做:

menuitem.Click += new EventHandler(MenuItem_Click);
Run Code Online (Sandbox Code Playgroud)

问题是有一个ToolStripSeperatorItem继承了ToolStripMenuItem,并且出现了我的项目和错误列表,因为它没有Click事件.

我怎么能不在我的OfType方法中包含这些?

Mic*_*ray 9

menuStrip1.Items.OfType<ToolStripMenuItem>().Where(it => it.GetType() == typeof(ToolStripMenuItem));
Run Code Online (Sandbox Code Playgroud)

这似乎有点多余,但通过两者兼而有之,您可以维护返回类型.