Możesz zrobić coś bardziej ogólnego w zakresie wyboru właściwości, a jednocześnie sprecyzować typ, z którego wybierasz, w twoim przypadku „Zamów”:
napisz swoją funkcję jako ogólną:
public List<Order> GetOrderList<T>(IEnumerable<Order> orders, Func<Order, T> propertySelector)
{
return (from order in orders
orderby propertySelector(order)
select order).ToList();
}
a następnie użyj go w następujący sposób:
var ordersOrderedByDate = GetOrderList(orders, x => x.OrderDate);
Możesz być jeszcze bardziej ogólny i zdefiniować typ otwarty dla tego, co chcesz zamówić:
public List<T> OrderBy<T,P>(IEnumerable<T> collection, Func<T,P> propertySelector)
{
return (from item in collection
orderby propertySelector(item)
select item).ToList();
}
i używaj go w ten sam sposób:
var ordersOrderedByDate = OrderBy(orders, x => x.OrderDate);
Co jest głupim, niepotrzebnym, złożonym sposobem robienia „OrderBy” w stylu LINQ, ale może dać ci wskazówkę, jak można go zaimplementować w sposób ogólny