我正在尋找一些有關邏輯問題的幫助,並希望有人可以通過使用C#和LINQ以高效的方式幫助我解決問題。使用C#和LINQ重新評估值
我服務的下面的列表中有不同的術語:
Item | RecurringMonthlyCharge | Term | Commission
-------------------------------------------------------
Service 1 | $10.00 | 12 | $100.00
Service 2 | $12.00 | 18 | $200.00
Service 3 | $14.00 | 12 | $300.00
我的目標是通過$ X降低總佣金後均勻地重新分配的RecurringMonthlyCharge
場(考慮到「項」)。
例如,如果我將總佣金折扣50.00美元,我想在三條線上劃分50美元,並考慮該術語。
使用「服務1」爲例,這將制定出爲:
10 - (50/12) = $5.83/mo
我的問題是如何做到這一點在所有線路比例考慮到不同期限長一段時間。也許通過一個共同的因素或加權技術?
的幾點:
- 委員會是術語(即服務1有$ 100.00佣金 支付的基礎上12個月的協議)
- 施加的總折扣的,必須 扣除均勻從月度經常性費用中,考慮到 賬戶期限,總計最終折扣金額(在我的 示例中爲50美元)。
嘗試#1:
private static decimal GetRecurringCostEquiv(List<QuotationItemViewModel> items)
{
var discVal = GetDiscounts(items, 2);
decimal? result = 0.00M;
decimal factor = 1.00M/items.Where(x => x.ProductTypeId == 2).Sum(i => i.RecurringTerm ?? 0);
result = items.Select(i => i.RecurringCostCore - i.RecurringTerm * factor * discVal).Sum();
return result ?? 0.00M;
}
在這種情況下,應該不是10 - (50 *(12 /(12 + 18 + 12))? – flq 2012-02-21 10:16:27
你可以擴展「**總佣金」和分裂線?在你的例子中,似乎所有50美元的佣金削減已經應用到服務1? – AakashM 2012-02-21 10:18:51
@AakashM - 在我的例子中,它適用於單行。我的要求是根據總折扣減少每條線的重複月度收費。 – Nick 2012-02-21 10:20:36