Ich habe einen Lambda-Ausdruck, den ich verkürzen möchte, indem ich zwei Funktionsaufrufe miteinander kombiniere. Wenn Sie in unten Code sehen, rufe ich this.adgroupRepository.GetBidRange
zweimal. Es muss eine Möglichkeit geben, diese Aufrufe zu einer zu kombinieren und nur den FloorValue und den Deckenwert von innen zu übergeben.Komplexen Lambda-Ausdruck auswerten
Kann jemand helfen?
new JsonResult
{
Data = result.Data.Where(x => x.Bidding != null).Select(
x => new
{
x.ID,
x.Name,
BidRange = new
{
FloorValue = (x.Bidding.FloorPrice != null) ? x.Bidding.FloorPrice : this.adgroupRepository.GetBidRange(this.contextProvider.CurrentAccount.CurrencyCode, x.PricingModel, x.Bidding.Type).FloorValue,
CeilingValue = (x.Bidding.CeilingPrice != null) ? x.Bidding.CeilingPrice : this.adgroupRepository.GetBidRange(this.contextProvider.CurrentAccount.CurrencyCode, x.PricingModel, x.Bidding.Type).CeilingValue
},
DefaultBid = x.Bidding.BroadBid
})
};
Eine Methode kann nur ein Objekt zurückgeben. Wenn die Methode GetBidRange() nur eine einzelne Zahl zurückgibt, kann der Code nicht geändert werden. Wenn Sie GetBidRange() ändern, um ein anderes Objekt wie KeyPairValue zurückzugeben, das zwei Zahlen zurückgeben kann, kann der Code einfacher sein. – jdweng
@jdweng Es gibt bereits ein Objekt mit 'FloorValue' und' DeckenValue' darauf zurück. – Rawling