C# 如何使用Linq过滤Application.OpenForms集合?

C# 如何使用Linq过滤Application.OpenForms集合?,c#,linq,C#,Linq,我想使用Where来过滤应用程序。OpenForms与Linq的集合,这个网站上的几个问题表明,我所需要做的就是访问它的AllKeys属性。但是,即使在我创建一个新的Windows窗体应用程序时,该集合似乎根本没有此属性,并且在我尝试使用它时也不会编译。原因可能是什么?您必须强制转换它,因为它不实现IEnumerable,而只实现IEnumerable: var query = Application.OpenForms.Cast<Form>() .Where(form =&

我想使用
Where
来过滤
应用程序。OpenForms
与Linq的集合,这个网站上的几个问题表明,我所需要做的就是访问它的
AllKeys
属性。但是,即使在我创建一个新的Windows窗体应用程序时,该集合似乎根本没有此属性,并且在我尝试使用它时也不会编译。原因可能是什么?

您必须强制转换它,因为它不实现
IEnumerable
,而只实现
IEnumerable

var query = Application.OpenForms.Cast<Form>()
    .Where(form => ...);
var query=Application.OpenForms.Cast()
。其中(表格=>…);

但是,
表单
没有
AllKeys
属性。您是否混淆了webforms和winforms?在前者中没有
Application.OpenForms

Application.OpenForms.Cast(),其中(x=>…)可能是我混淆了两者。不管怎样,您提供的代码正是我所需要的!