एक तरफ: ध्यान दें कि मानक LINQ ऑपरेटरों (पहले उदाहरण के अनुसार) मौजूदा सूची में परिवर्तन नहीं करते - list.OrderBy(...).ToList()
फिर से आदेश दिया अनुक्रम के आधार पर एक नई सूची बनाने होंगे।
static void Sort<TSource, TValue>(this List<TSource> list,
Func<TSource, TValue> selector)
{
var comparer = Comparer<TValue>.Default;
list.Sort((x,y) => comparer.Compare(selector(x), selector(y)));
}
static void SortDescending<TSource, TValue>(this List<TSource> list,
Func<TSource, TValue> selector)
{
var comparer = Comparer<TValue>.Default;
list.Sort((x,y) => comparer.Compare(selector(y), selector(x)));
}
तो आप का उपयोग कर सकते हैं::
list.Sort(x=>x.SomeProp); // etc
यह वही में मौजूदा सूची अद्यतन करता है यह बहुत आसान है, तथापि, एक विस्तार विधि है कि आप List<T>.Sort
साथ lambdas उपयोग करने के लिए अनुमति देता है बनाने के लिए किया जाता है जिस तरह से List<T>.Sort
आमतौर पर करता है।
स्रोत
2009-01-23 13:09:06
यह इस प्रश्न में शामिल है http://stackoverflow.com/questions/31708/how-can-i-convert-ienumerablet-to-listt-in-c – John