使用Linq关闭所有MDI子窗口

本文关键字:MDI 窗口 Linq 使用 | 更新日期: 2023-09-27 18:10:01

我试图使用以下循环

foreach (Form frm in this.MdiChildren)
{
    frm.Close();
}

并将其转录为Linq表达式,如下所示:

this.MdiParent.MdiChildren.OfType<Form>().ToList().ForEach(x => x.Close());

但是这一行显示了一个NullReferenceException "对象引用未设置为对象的实例"

我做错了什么?我是Linq的新手。

使用Linq关闭所有MDI子窗口

试试这个:

this.MdiChildren.OfType<Form>().ToList().ForEach(x => x.Close());

除非你要从其中一个子元素中尝试代码,在这种情况下,你可以尝试你的代码

this.MdiParent.MdiChildren.OfType<Form>().ToList().ForEach(x => x.Close());