Ви можете зробити щось більш загальне щодо вибору властивостей, але конкретно стосовно типу, який ви вибираєте, у вашому випадку "Замовити":
написати свою функцію як загальну:
public List<Order> GetOrderList<T>(IEnumerable<Order> orders, Func<Order, T> propertySelector)
{
return (from order in orders
orderby propertySelector(order)
select order).ToList();
}
а потім використовуйте його так:
var ordersOrderedByDate = GetOrderList(orders, x => x.OrderDate);
Ви можете бути ще більш загальним і визначити відкритий тип для того, що ви хочете замовити:
public List<T> OrderBy<T,P>(IEnumerable<T> collection, Func<T,P> propertySelector)
{
return (from item in collection
orderby propertySelector(item)
select item).ToList();
}
і використовувати його так само:
var ordersOrderedByDate = OrderBy(orders, x => x.OrderDate);
Що є дурним непотрібним складним способом створення стилю LINQ "OrderBy", але він може дати вам зрозумілі шляхи, як це можна реалізувати в загальному вигляді