-3

BaseClass の ObservableCollection を DerivedClass の IEnumerable に変換するのを手伝ってくれませんか?

ありがとう。

4

2 に答える 2

5

すべてのアイテムが派生オブジェクトであることがわかっている場合は、LINQ を使用しますEnumerable.Cast

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

上記は、コレクション内のアイテムが実際には ではない場合にスローされますDerivedClass

コレクションに非派生オブジェクトが含まれている可能性があり、派生オブジェクトのみが必要な場合:

var enumerable = collection.OfType<DerivedClass>();
于 2012-09-21T13:32:42.793 に答える
2

すべてのアイテムが実際に派生型であることが確実な場合は、使用しますCast

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

一部がそのタイプではない可能性がある場合は、使用します

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

Castアイテムをキャストできない場合は例外をスローし、OfType単にそれらを結果に含めません。

于 2012-09-21T13:32:45.597 に答える