我有以下幾種方法:如何獲得Lambda表達式上的謂詞<T>值?
private List<T> GetEntities<T>(T entity) {
// ...
}
和
public virtual List<T> Find<T>(Predicate<T> match) {
// ...
}
我怎樣才能在Predicate<T>
lambda表達式的值是多少?
我想這樣做:
var result = Find<MyObject>(o => o.Name == "Something")
,並在Find
方法我想:
public virtual List<T> Find<T>(Predicate<T> match) {
// ...
string name = myObj.Name // equals to "Something"
return GetEntities<T>(myObj) //Note that here is my object with the parameters passed via lambda
// ...
}
我怎樣才能做到這一點?
編輯:已經有接收的MyObject,我只是想,我可以使用lambda表達式,而不實例化對象只是過濾實體的方法等。不知道如果我使用的函數功能或謂語
編輯2:按照要求,這裏是什麼,我會達到一個具體的例子:
目前,當我想要檢索與特定的過濾器的對象,我用:
Person p = new Person() { Name = "John" };
var result = GetEntities<Person>(p);
我想做什麼:
var result = Find<Person>(p => p.Name = "John");
然而在內部想繼續使用以前的方法,我只想調高表達成一個對象,然後使用GetEntities<Person>(p)
結論: 我做了一個非常很多困惑與謂詞和函數功能的。我認爲我可以把它們當作對象,但是是表達式,我的問題完全落後於這些元素的概念。
'match'沒有任何與之相關的值。 – 2013-03-06 19:59:28
「謂語的價值」是什麼意思?你有什麼?任何你想使用'Predicate'的原因,而不僅僅是'Func '和Enumerable.Where? –
2013-03-06 19:59:34
你究竟是什麼意思?我怎樣才能得到Predicate的值? – 2013-03-06 20:00:22