Özellik seçimi hakkında daha genel bir şey yapabilirsiniz, ancak 'Sipariş' durumunuzda seçtiğiniz tür hakkında özel olabilirsiniz:
işlevinizi genel bir işlev olarak yazın:
public List<Order> GetOrderList<T>(IEnumerable<Order> orders, Func<Order, T> propertySelector)
{
return (from order in orders
orderby propertySelector(order)
select order).ToList();
}
ve sonra şu şekilde kullanın:
var ordersOrderedByDate = GetOrderList(orders, x => x.OrderDate);
Daha genel olabilir ve sipariş etmek istediğiniz şey için açık bir tür tanımlayabilirsiniz:
public List<T> OrderBy<T,P>(IEnumerable<T> collection, Func<T,P> propertySelector)
{
return (from item in collection
orderby propertySelector(item)
select item).ToList();
}
ve aynı şekilde kullanın:
var ordersOrderedByDate = OrderBy(orders, x => x.OrderDate);
Bu, LINQ stili 'OrderBy' yapmanın aptalca gereksiz karmaşık bir yoludur, ancak genel bir şekilde nasıl uygulanabileceğine dair bir ipucu verebilir.