2009-02-10 11 views
21

मेरे पास MyImageClass का एक सामान्य संग्रह है, और MyImageClass में एक बुलियन संपत्ति "IsProfile" है। मैं इस जेनेरिक सूची को सॉर्ट करना चाहता हूं जो IsProfile == सत्य सूची की शुरुआत में खड़ा है।जेनेरिक सूची एएससी या डीएससी कैसे क्रमबद्ध करें?

मैंने यह कोशिश की है।

rptBigImages.DataSource = estate.Images.OrderBy(est=>est.IsProfile).ToList(); 

छवि के ऊपर कोड के साथ आखिरी है जो IsProfile गुण सत्य है। लेकिन मैं इसे पहली अनुक्रमणिका में होना चाहता हूं। मुझे कुछ एएससी या डीएससी चाहिए। तब मैंने यह किया।

rptBigImages.DataSource = estate.Images.OrderBy(est=>est.IsProfile).Reverse.ToList(); 

क्या ऐसा करने का कोई आसान तरीका है?

धन्यवाद

उत्तर

39

कैसे के बारे में:

estate.Images.OrderByDescending(est => est.IsProfile).ToList() 

यह IsProfile संपत्ति अवरोही क्रम में छवियाँ आदेश और उसके बाद परिणाम से एक नई सूची का निर्माण करेगा।

+0

=> इसके बजाय -> –

+0

रे के लिए तय किया गया। –

+1

उत्तर के लिए धन्यवाद और मेरे अनावश्यक के लिए खेद है, मुझे नहीं पता कि मैंने इंटेलिजेंस पर ऑर्डरबी के तहत शब्द क्यों नहीं लिया। धन्यवाद फिर से –

33

आप का उपयोग कर सकते हैं। OderByDescending (...) - लेकिन ध्यान दें कि LINQ विधियों के साथ आप एक नई ऑर्डर सूची बना रहे हैं, मौजूदा सूची को ऑर्डर नहीं कर रहे हैं।

आप एक List<T> है और पुनः आदेश देने के मौजूदा सूची चाहते हैं, तो आप Sort() उपयोग कर सकते हैं - और आप कुछ विस्तार विधियां जोड़कर इसे आसान बनाने के कर सकते हैं:

static void Sort<TSource, TValue>(this List<TSource> source, 
     Func<TSource, TValue> selector) { 
    var comparer = Comparer<TValue>.Default; 
    source.Sort((x,y)=>comparer.Compare(selector(x),selector(y))); 
} 
static void SortDescending<TSource, TValue>(this List<TSource> source, 
     Func<TSource, TValue> selector) { 
    var comparer = Comparer<TValue>.Default; 
    source.Sort((x,y)=>comparer.Compare(selector(y),selector(x))); 
} 

तो आप कर सकते हैं list.Sort(x=>x.SomeProperty) और list.SortDescending(x=>x.SomeProperty) का उपयोग करें।

+0

धन्यवाद मार्क, इसलिए यदि मैं ऑर्डर करने के लिए लिंक का उपयोग करता हूं, तो इसका मतलब यह है कि यह प्रदर्शन हानि का कारण बनता है? –

+0

ठीक है, बहुत ही कम तरीके से, लेकिन डेटा बाध्यकारी की तुलना में आप इसे कभी नहीं देख पाएंगे। –

+0

आपको बहुत धन्यवाद –

संबंधित मुद्दे