Sie können etwas allgemeineres an der Eigenschaftenauswahl vornehmen, jedoch den Typ, aus dem Sie auswählen, genau angeben, in Ihrem Fall 'Bestellung':
Schreiben Sie Ihre Funktion als generische:
public List<Order> GetOrderList<T>(IEnumerable<Order> orders, Func<Order, T> propertySelector)
{
return (from order in orders
orderby propertySelector(order)
select order).ToList();
}
und dann benutze es so:
var ordersOrderedByDate = GetOrderList(orders, x => x.OrderDate);
Sie können noch allgemeiner sein und einen offenen Typ für das definieren, was Sie bestellen möchten:
public List<T> OrderBy<T,P>(IEnumerable<T> collection, Func<T,P> propertySelector)
{
return (from item in collection
orderby propertySelector(item)
select item).ToList();
}
und benutze es genauso:
var ordersOrderedByDate = OrderBy(orders, x => x.OrderDate);
Das ist eine blöde, unnötig komplexe Art, einen LINQ-Stil 'OrderBy' zu erstellen, aber es kann Ihnen einen Hinweis darauf geben, wie er generisch implementiert werden kann