我有Service课。其中一个字段是ServicePrice对象的集合,其中有一个Priceand\xd0\xa1hangeDate字段。
class Service \n{\n ObservableCollection<ServicePrice> ServicePrices {get; set;}\n // other fields\n}\n\nclass ServicePrice \n{\n int Price {get;set;}\n DateTime ChangeDate {get;set;}\n}\nRun Code Online (Sandbox Code Playgroud)\n我需要方法来查找在某个时间点相关的服务的价格。
\n public int? GetPriceAtDate(DateTime date)\n{\n // Do something here\n int? ActualPrice = 0 \n return ActualPrice;\n}\n\nRun Code Online (Sandbox Code Playgroud)\n我正在使用 LINQ MinBy 函数找到解决方案:
\n public int? GetPriceAtDate(DateTime date)\n{\n return ServicePrices.MinBy(sp => (sp.ChangeDate - date).Duration()).Price;\n}\nRun Code Online (Sandbox Code Playgroud)\n但此函数将返回最近的日期,但不一定是过去的日期。从未来获得产品的价格是很奇怪的。
\n我会分两个阶段处理这个问题:
date)public int? GetPriceAtDate(DateTime date) =>
ServicePrices
.Where(sp => sp.ChangeDate <= date)
.MaxBy(sp => sp.ChangeDate)?.Price;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
173 次 |
| 最近记录: |