2012-04-19 68 views
1

我收藏看起来像这样自定义LINQ查询

enter image description here

我需要得到所有这些订单没有的,其匹克的SeqNo大于它的交付状态。业务规则是这些操作基于其SeqNo发生,并且在获取之前不应交付订单号。

在给出的例子中,我应该得到第二号订单,因为它在提取之前交付。 感谢

+1

你尝试过什么?什么是你的集合的实例组成的类的定义是什么? – 2012-04-19 06:38:03

+0

我的课只有这3个属性,到现在为止我通过使用foreach循环和列表来完成这项工作 – MegaMind 2012-04-19 06:41:29

回答

5

听起来像是你需要的是这样的 - 我已经分离出的查询部分,使其更易于阅读:

var pickups = orders.Where(order => order.Status == Status.Pick); 
var deliveries = orders.Where(order => order.Status == order.Deliver); 
var query = from pickup in pickups 
      join delivery in deliveries on pickup.OrderId equals delivery.OrderId 
      where pickup.SeqNo > delivery.SeqNo 
      select pickup.OrderId; 
+0

非常简单的解决方案,BIG THANKS – MegaMind 2012-04-19 06:44:54