【发布时间】:2014-12-08 21:31:14
【问题描述】:
尝试使用 LINQ C# 找出当数量缺货时如何获得日期范围结果
假设我有一个看起来像这样的表格结果
EventDate | Qty
2014-02-03 | 6
2014-02-04 | -1
2014-02-05 | -2
2014-02-06 | 2
2014-02-07 | -1
2014-02-08 | -2
2014-02-09 | -3
2014-02-10 | 5
现在我想像这样获得库存数量为负0时的日期范围
FromDate | ToDate
2014-02-04 | 2014-02-05
2014-02-07 | 2014-02-09
有人可以帮助我如何实现吗?
更新
我知道我可以通过乘以查询来做到这一点,但如果可能的话,我想只在一个 LINQ 查询中做到这一点。
【问题讨论】:
-
如果你把问题分解成小部分,应该不会太难。首先获取 qty 为负数的日期(Linq 的
.Where()函数),然后将结果传递给返回类型为List<OutOfStockRange>并有一个类class OutOfStockRange { public Datetime FromDate {get; set;} public DateTime ToDate {get; set;}}的自定义函数您的自定义函数只需要找到连续区域和创建一个新的OutOfStockRange并将其添加到要返回的列表中。 -
@mason 我正在尝试在一个 linq 查询中做到这一点,这可能吗?
-
您可以将假设的自定义函数链接到您的 Linq 查询中。你也可以避免使用自定义函数,但我只擅长基本的 Linq 东西。
-
与论坛网站不同,我们不使用“谢谢”、“任何帮助表示赞赏”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?。此外,“提前感谢”是没有意义的。