2014-02-19 71 views
3

我試圖做的下一個指令在C#中使用Type.GetType:如何在表達拉姆達

Form form = this.MdiChildren.FirstOrDefault(x => x is Type.GetType("MyFormName")); 

但我有一個錯誤:方法名稱的預期。

該指令的正確用法是什麼。

+1

如果這個問題是關於特定的錯誤消息,它與lambda表達式無關 - 在這種情況下,您應該將問題簡化爲像'bool a = x是Type.GetType(「MyFormName」);'。 –

回答

7

既然你有一個Type例如,你需要使用IsAssignableFrom,而不是is

x => Type.GetType("MyFormName").IsAssignableFrom(x.GetType()) 

這當然假設你真的不能引用在編譯時的實際類型。如果可以的話,那麼你可以代替簡化這個代碼:哪個是is運營商是如何設計使用

x is MyFormName 

.OfType<MyFormName>().FirstOrDefault(); 

這是將有一些內部類似。