2010-11-17 2 views
1

Простой вопрос, не уверен, какой лучший ответ, хотя я подозреваю, что это связано с Linq.Linq - flatten и сортировать по родителям

У меня есть список объектов «заказа», каждый из которых имеет идентификатор и коллекцию объектов «orderItem», каждая из которых, в свою очередь, имеет идентификатор. Однако объекты orderItem не содержат прямой ссылки на идентификатор «order».

Мне нужно получить список всех объектов «orderItem» всех «заказов» в списке, отсортированных в первую очередь orderItemID, а затем orderID.

(Если бы у меня была ссылка на orderID в orderItemID, это было бы очень просто, но я этого не делаю, и было бы уродливо и неэффективно добавить один, чтобы это сделать).

Я могу легко получить список всех объектов orderItem по итерации, очевидно, но тогда я не могу выполнить сортировку, в которой я нуждаюсь. Мысли?

ответ

5

Это красиво и легко:

var query = from order in orders 
      from item in order.OrderItems 
      orderby item.OrderItemId, order.OrderId 
      select item; 
+0

Спасибо. Я люблю Linq - никогда не знал, что вы можете запросить запросы в запросах так легко! –

Смежные вопросы