Я сделал, чтобы one-many Linq запросил, и я хотел бы отсортировать на свойстве во "многих" набор. Например, в псевдокоде ниже, я возвращаюсь Список из запроса Linq, но я хотел бы отсортировать / заказывают свойство продуктов на основе свойства SequenceNumber класса продукта. Как я могу сделать это? Любая информация ценится.Спасибо.
public class Order
{
public int OrderId;
public List<Product> Products;
}
public class Product
{
public string name;
public int SequenceNumber;
}
В Заказе
просто выполните
Products = Products.OrderBy(o => o.SequenceNumber);
Существует также метод Sort ()
в List
для прямой сортировки списка.
Если вы хотите отсортировать коллекцию «на месте», просто позвоните по телефону
Products.Sort((lhs, rhs) => lhs.SequenceNumber.CompareTo(rhs.SequenceNumber));
. Если вы хотите отсортировать коллекцию «по запросу», просто используйте LINQ:
foreach (var product in order.Products.OrderBy(x => x.SequenceNumber)) {
}
Когда я читал ваш вопрос, ваш запрос возвращает IEnumerable
Чтобы выполнить сортировку по чему-либо, он должен иметь одно значение. Имеется несколько SequenceNumber, потому что существует несколько продуктов. Вам нужно решить, как вы будете выбирать номер для сортировки.
Давайте скажем, вы хотите отсортировать заказы по наибольшему SequenceNumber для продуктов в этом заказе. Тогда запрос может быть таким:
from order in orders
orderby order.Products.Max(p=>p.SequenceNumber)
select order;