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

6
我想使用Linq来过滤带有Application.OpenFormsWhere集合,并在这个网站上看到了几个与此相关的问题[1][2][3] ,建议我所需要做的就是访问它的AllKeys属性。然而,即使我创建一个新的Windows Forms应用程序,该集合似乎根本没有这个属性,并且在尝试使用它时不会编译。可能的原因是什么?

4
Application.OpenForms.Cast<Form>().Where(x=> ... ); - Sriram Sakthivel
1个回答

9

由于 FormCollection 只实现了 IEnumerable 而不是 IEnumerable<T>,所以您需要进行强制转换:

var query = Application.OpenForms.Cast<Form>()
    .Where(form => ...);

然而,Form没有AllKeys属性。您是否混淆了WebForms和WinForms?在前者中,没有Application.OpenForms


可能是我混淆了这两个。无论哪种方式,你提供的代码正是我所需要的! - mzi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接