2012-04-19 17 views
1

私のコレクションは、私はすべてのものはそのピックSEQNOは、そのステータスを届けより大きい一切のを注文しない取得する必要があり、このカスタムLINQのクエリ

enter image description here

のように見えます。ビジネスルールでは、これらの操作はSeqNoに基づいて行われ、注文番号は受け取られる前に配信されるべきではありません。

この例では、取得する前に配信するため、注文番号2を取得する必要があります。あなたはこのような何かを必要とするよう おかげ

+1

を試してみましたか?あなたのコレクションのインスタンスを持つクラスの定義は何ですか? –

+0

私のクラスは、これらの3つのプロパティを持ち、今はforeachループとリストを使ってこれを行っています。 – MegaMind

答えて

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

非常に単純なソリューション、大きな感謝 – MegaMind