2014-09-10 115 views
3

我想用Where過濾Application.OpenForms集合使用LINQ,一些問題在這個網站[1][2][3]建議,爲了做到這一點所有我認爲需要的是訪問它的AllKeys屬性。但是,即使在創建新的Windows窗體應用程序時,集合似乎也沒有此屬性,並且在嘗試使用它時不會編譯。可能是什麼原因?如何使用Linq過濾Application.OpenForms集合?

+3

'Application.OpenForms.Cast

().Where(x => ...);' – 2014-09-10 12:55:44

回答

4

你要投它,因爲FormCollection沒有實現IEnumerable<T>但只有IEnumerable

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

然而,Form沒有AllKeys財產。你困惑webforms和winforms嗎?在前者中沒有Application.OpenForms

+0

這可能是我混淆了兩者。無論哪種方式,您提供的代碼正是我需要的! – electroLux 2014-09-10 15:07:07