C# 将基类集合转换为派生类集合

C# 将基类集合转换为派生类集合,c#,C#,你能帮我把基类的ObservableCollection转换成DerivedClass的IEnumerable吗 谢谢。如果您知道所有项都是派生对象,请使用LINQ的Enumerable.Cast: 如果您确定所有项实际上都是派生类型,那么请使用Cast 如果某些可能不是该类型,则使用 IEnumerable<DerivedClass> results = observableCollection.OfType<DerivedClass>(); 如果有任何物品无法铸造,

你能帮我把基类的ObservableCollection转换成DerivedClass的IEnumerable吗


谢谢。

如果您知道所有项都是派生对象,请使用LINQ的Enumerable.Cast:


如果您确定所有项实际上都是派生类型,那么请使用Cast

如果某些可能不是该类型,则使用

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

如果有任何物品无法铸造,铸造将抛出异常,OfType将不会将其包含在结果中。

谢谢Jon和Servy。
var enumerable = collection.OfType<DerivedClass>();
IEnumerable<DerivedClass> results = observableCollection.Cast<DerivedClass>();
IEnumerable<DerivedClass> results = observableCollection.OfType<DerivedClass>();