我有一個層次集合對象,我試圖在Linq中檢索最後一級對象的屬性。我不想爲每個屬性寫一個get方法。不知道如何通過選擇器來實現它Linq中的通用屬性獲取器
Class Test {
public int ID { get; set; }
public int PopertyA { get; set; }
public string PopertyB { get; set; }
...Many more properties
}
public static TResult GetTest(hierarchyObject, int ID, Func<TSource, TResult> selector)
{
return (from level1 in hierarchyObject.Level1
from test in level1.Test
where test.ID.Equals(ID)
select selector).First();
}
這個工作。目前我已經使方法返回測試對象並訪問調用方法中的屬性。但是想知道我是否可以實現一個通用屬性獲取器。
編輯:
Class Hierarcy{
public IList<Level1> level1;
}
Class Level1 {
public IList<Test> test;
}
給定一個層次結構對象並test.ID,我想要檢索測試的任何財產。
我已經通過5次讀這一點,還是不明白,你要怎麼辦... – cjk 2010-11-10 07:57:16
你沒有提供足夠的細節。你的「層級」是如何組織的? 'Level1'的類型是什麼?如果有一個名爲'Level2'或'Level3'的子屬性,那是什麼類型? 「最後一關」是什麼意思? – Groo 2010-11-10 08:01:19
hierarchyObject具有Level1的集合,它具有Test的集合 – anivas 2010-11-10 09:20:51