2012-04-28 41 views
2

我的場景是這樣的:我有一個抽象超類,讓我們稱這個超類和這個超類的一些子類SubClass1,2,3 ..我有一個超類的列表,在這最後我添加了一些子類。在超類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

我喜歡這種方法..現在假設兩個子類具有相同的屬性..重量,我希望找到那些具有一定的權重,現在我應該做什麼不同? 也要感謝下面的答案 – Saph 2012-04-28 18:10:54

+2

@ user1363200 - 如果這兩個類實現了一個暴露此屬性的公共接口,您可以在OfType 中使用它,否則您需要分別爲每個類執行linq語句 – 2012-04-28 18:41:43

+0

這應該工作 – Saph 2012-04-28 18:56:58