如何解决使用其他条件在子列表上应用日期过滤器c#Linq
我有一个模型,属性如下所示
Subscription
------------
Number
Id
SubscriptionLines
[ProductNo
StartDate]
我现在尝试使用此linq在ProductNo上找到与之匹配的订阅
List<Subscription> _subscriptions = (from i in _subscriptions
where i.SubscriptionLines.Any(l => l.ProductNo == isbn)
select i).ToList();
我必须对StartDate
应用一个条件,即获取具有StartDate的最新值的订阅并与ProductNo匹配
s123
1
[
{
9876
31-2-2019
}
{
456
31-1-2020
}
]
s456
2
[
{
9876
12-2-2020
}
{
456
31-1-2020
}
]
s756
2
[
{
986
12-2-2020
}
{
456
31-1-2020
}
]
从此数据样本集中,我们有9个产品编号为9876的匹配项,但我们需要获取一个具有最近日期的匹配项,在这种情况下,它是s456,值为12-2-2020
可以对查询进行哪些调整以添加date参数?
解决方法
如果您要通过isbn和max StartDate获取ProductNo和StartDate,请尝试此操作。
我不确定这是否是一个好的解决方案。
var _subscriptions = (from i in subscriptions
where i.SubscriptionLines.Any(l => l.ProductNo == isbn)
select i)
.SelectMany(m => m.SubscriptionLines)
.GroupBy(o => o.StartDate)
.Select(grp => grp.OrderByDescending(grpElm => grpElm.StartDate)).First().ToList();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。