2012-09-21 55 views

回答

3

如果你知道所有的項目都派生的對象,然後使用LINQ的Enumerable.Cast

var enumerable = collection.Cast<DerivedClass>(); 

如果集合中的任何項目實際上不是DerivedClass以上將拋出。

如果集合包括非派生的對象,你只希望那些被推導出:

var enumerable = collection.OfType<DerivedClass>(); 
1

如果您確定所有項目都是派生類型的實際然後用Cast

IEnumerable<DerivedClass> results = observableCollection.Cast<DerivedClass>(); 

如果有些人可能是此類型,然後使用

IEnumerable<DerivedClass> results = observableCollection.OfType<DerivedClass>(); 

Cast會拋出一個異常,如果任何項目不能被鑄造,OfType將不會包含在結果中。