給定一個集合如何檢查對象的針對一個類型列表類型?
IEnumerable<Type> supportedTypes
什麼檢查給定對象是否爲這些類型(或派生類型)的一個最好的方法是什麼?
我的第一反應是做這樣的事情:
// object target is a parameter passed to the method in which I'm doing this.
if (supportedTypes.Count(supportedType => target is supportedType) > 0)
{
// Yay my object is of a supported type!!!
}
..但似乎並不奏效。我不能在這樣的lambda表達式中使用「is」關鍵字嗎?
您應該使用的任何()而不是檢查計數 –
作爲一個側面說明,我多麼希望自己精神上解析像'a.IsInstanceOf(B)'爲_「是B的實例? 「_ - 在這種情況下當然是倒退了。 –
你確定'IsInstanceOf'是你想要的嗎? 'IsAssignableFrom'聽起來更像你想要的。 http://msdn.microsoft.com/en-us/library/system.type.isassignablefrom.aspx – asawyer