我需要过滤多个日期范围内的一些数据
说
public class ProductSale{
public long ID {get; set;}
public long ProductID {get; set;}
public DateTime SaleDate {get; set;}
...
}
public class ProductSaleRang{
public long ID {get; set;}
public DateTime StartDate {get; set;}
public DateTime EndDate {get; set;}
...
}
我有这两张桌子 以上作为产品销售记录,第二个具有报告的销售范围日期 我需要知道ProductSaleRange表中提到的所有范围内的每个产品销售计数组合的数量(两个范围永远不会相互重叠) 我如何在LINQ中实现这一目标。 需要帮忙 提前致谢答案 0 :(得分:1)
这是代码可重现性中最简单的一个。无论如何它有复杂度O(n * m),我不知道它是否符合你的需求。
List<ProductSale> productSales = /*Data here*/;
List<ProductSaleRang> productSaleRang = /*data here*/ ;
productSales.Where(ps => productSaleRang.Any(psr => psr.StartDate <= ps.SaleDate && psr.EndDate >= ps.SaleDate));