Набор вида в рамках использования набора Linq

Я сделал, чтобы one-many Linq запросил, и я хотел бы отсортировать на свойстве во "многих" набор. Например, в псевдокоде ниже, я возвращаюсь Список из запроса Linq, но я хотел бы отсортировать / заказывают свойство продуктов на основе свойства SequenceNumber класса продукта. Как я могу сделать это? Любая информация ценится.Спасибо.

public class Order
{
   public int OrderId;
   public List<Product> Products;
}

public class Product
{
   public string name;
   public int SequenceNumber;
}
6
задан HBCondo 27 April 2010 в 18:03
поделиться

4 ответа

order.Product.OrderBy(p => p.SequenceNumber);
4
ответ дан 9 December 2019 в 20:41
поделиться

В Заказе просто выполните

Products = Products.OrderBy(o => o.SequenceNumber);

Существует также метод Sort () в List для прямой сортировки списка.

2
ответ дан 9 December 2019 в 20:41
поделиться

Если вы хотите отсортировать коллекцию «на месте», просто позвоните по телефону

Products.Sort((lhs, rhs) => lhs.SequenceNumber.CompareTo(rhs.SequenceNumber));

. Если вы хотите отсортировать коллекцию «по запросу», просто используйте LINQ:

foreach (var product in order.Products.OrderBy(x => x.SequenceNumber)) {
}
2
ответ дан 9 December 2019 в 20:41
поделиться

Когда я читал ваш вопрос, ваш запрос возвращает IEnumerable , и вы хотите отсортировать их по SequenceNumber.

Чтобы выполнить сортировку по чему-либо, он должен иметь одно значение. Имеется несколько SequenceNumber, потому что существует несколько продуктов. Вам нужно решить, как вы будете выбирать номер для сортировки.

Давайте скажем, вы хотите отсортировать заказы по наибольшему SequenceNumber для продуктов в этом заказе. Тогда запрос может быть таким:

from order in orders
orderby order.Products.Max(p=>p.SequenceNumber)
select order;
4
ответ дан 9 December 2019 в 20:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: