आप गुणों के चयन के बारे में कुछ अधिक सामान्य कर सकते हैं, फिर भी आपके द्वारा चुने गए प्रकार के बारे में विशिष्ट होना चाहिए, आपके मामले में 'ऑर्डर':
एक सामान्य के रूप में अपने कार्य लिखें:
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 शैली 'ऑर्डरबाय' करने का एक मूर्खतापूर्ण अनावश्यक जटिल तरीका है, लेकिन यह आपको एक सुराग दे सकता है कि इसे सामान्य तरीके से कैसे लागू किया जा सकता है