2012-04-28 4 views
2

私は抽象スーパークラスを持っていますが、このスーパークラスといくつかのサブクラスをSubClass1,2,3と呼ぶことにします。私はSuperClassのリストを持っています。私はいくつかのサブクラスを追加しました。スーパークラスのリストでサブプロパティを使用するC#

特定のサブクラスに対して特定のプロパティを持つオブジェクトを検索したいと考えています。例えば

public abstract class SuperClass{ 
public string name; 
public int value} 
public class SubClass1: SuperClass{ 
public double speed;} 

list<SuperClass> list = new list<SuperClass>(); 

だからここから、私は(異なる特性を持つ)サブクラスを追加し、(可能であれば例えば、いくつかのクライアント述語)を動的にこれらの異なる特性を選択したいと思います

答えて

2

使用してみてくださいlinq:

var items = list.OfType<TheSubClassTypeWithTheProperty>() 
       .Where(x => x.Property == value); 
+0

私はこのメソッドが好きです。今、2つのサブクラスが同じプロパティを持っていると仮定します。体重、私は特定の体重を持つものを探したいと思います。 また – Saph

+2

@ user1363200のお返事ありがとうございます。これらの2つのクラスがこのプロパティを公開する共通のインターフェイスを実装していれば、OfType で使用できます。そうしないと、クラスごとにlinqステートメントを個別に実行する必要があります。 –

+0

これはうまくいくはず – Saph

関連する問題