我需要傳入將在方法中的LINQ查詢中使用的「where」lambda表達式。問題是,我不知道在何處進行比較,直到進入方法。構建一個lambda WHERE表達式以傳入方法
現在來進一步解釋和澄清我上面所說的一些,我會想出一個人爲的例子。
想象一下,我有一個List<Products>
,我需要使用Products對象的productId
屬性將該列表縮小爲單個記錄。通常我會做到這一點:
var product = productList.Where(p=>p.productId == 123).FirstOrDefault();
現在走了一步 - 我需要把上述邏輯到未侷限於List<Products>
,但不是List<T>
所以最好的方法,我會調用它像這樣(我知道下面將無法正常工作,它只是這裏要說明什麼,我試圖實現):
myMethod(productList, p => p.productId == X)
隨着告誡在於X是不知道,直到我在方法裏面。
最後,對於它的價值,我需要指出我的數據收集是一個OData DataServiceQuery
。因此,重新總結我的問題:我需要知道如何構建一個lambda「where」表達式,我可以將它傳遞給一個方法,以及如何在LINQ查詢中將它用於對象集合。
T始終具有productId屬性? – sll
不,產品ID不一定是屬性。有時我可能有一個用戶列表,所以它將是UserId,或者可能是一組公司對象的companyId。 – bugfixr