Manvinder
Manvinder

Reputation: 4591

Custom Linq Query

My collection looks like this

enter image description here

I need to get all those order no's whose Pick's SeqNo is Greater than whose Deliver Status. Business rule is these operations happen based on their SeqNo and no Order No should deliver before get picked up.

In given example, i should get Order No 2, because it delivers before it get pickedup. Thanks

Upvotes: 1

Views: 293

Answers (1)

Jon Skeet
Jon Skeet

Reputation: 1503984

Sounds like you need something like this - I've separated out the query parts to make it easier to read:

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;

Upvotes: 5

Related Questions