我目前正在努力獲得使用memberexpression集合內的項目完成的方法。 我知道如何寫一個memberexpression直接持有集合的成員,但我怎麼能告訴它使用它的基礎類型。Memberexpression對收集項目
private Collection<TestClass> collection { get; set; }
DoSomethingWithCollection(collection,() => collection.Count);
private void DoSomethingWithCollection(Collection<TestClass> collection, MemberExpression member)
{
foreach(var item in collection)
{
//use reflexion to get the property for each item
//based on the memberexpression and work with it
}
}
我怎麼會需要重寫這段代碼DoSomethingWithCollection的呼叫可以保持基本類型的集合的Memberexpression,所以從「識別TestClass」?
讓我確定我明白了:假設你的'MemberExpression'指向一個屬性'Name'。在這種情況下,您只需要讀取集合中每個項目的'Name'屬性?因爲在你的用例中,你傳入了一個讀取集合本身的屬性的lambda('Count')。 –
那是正確的。我只是在集合中的類的屬性中進行操作。我提供了Count作爲例子,因爲這就是我知道如何處理集合「直接」,但我不知道如何處理底層類型。 –
您是否希望能夠將lambda作爲第二個參數傳入,如您的示例中所示? –