Вы можете сделать что-то более общее с выбором свойств, но быть конкретным с типом, из которого вы выбираете, в вашем случае 'Order':
написать свою функцию как универсальную:
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', но он может дать вам подсказку о том, как его можно реализовать в общем виде