2010-10-26 8 views
7

मैं पाश जहां मैं नाम वर्णानुक्रमक्या फोरलोप सी # में ऑर्डरबी का उपयोग करने का कोई तरीका है?

a 
b 
c 
d 

ऐसा करने के तरीके के लिए देख orderBy चाहते हैं उसके लिए भले ही मैं forloop अंदर LINQ orderby इस्तेमाल कर सकते हैं आश्चर्य है,?

+1

आप वास्तव में क्या करने की कोशिश कर रहे हैं? – R0MANARMY

+0

उसमें से एक लूप? तारों का एक पाश? आप इस स्ट्रिंग को नाम से ऑर्डर करना चाहते हैं? यदि ऐसा है, तो बस अपनी सूची करें। ऑर्डर बी(); यदि नहीं, तो हमें और जानकारी दें। कोड भी स्वागत है। – goenning

उत्तर

31

इस प्रयास करें:

List<Item> myItems = new List<Item>(); 
//load myitems 
foreach(Item i in myItems.OrderBy(t=>t.name)) 
{ 
//Whatever 
} 
+3

थोड़ा सा सवाल पूछता है, क्या लूप के प्रत्येक पुनरावृत्ति पर ऑर्डरबी निष्पादित करेगा जिससे प्रदर्शन प्रभावित होगा? – nikolifish

+2

नहीं, सिर्फ एक बार –

+3

हर किसी के लिए जो आश्चर्य करता है कि यह क्यों काम नहीं करता है: जांचें कि आपने 'System.Linq;' लाइन का उपयोग किया है या नहीं। – z00l

0

foreach की जरूरत है एक IEnumerable<T> LINQ क्रम-एक करके IEnumerable<T> में लेता है और आप एक हल कर IEnumerable<T> देता है। तो हाँ, यह काम करना चाहिए।

2
new string[] { "d", "c", "b", "a" } 
    .OrderBy(s => s) 
    .ToList() 
    .ForEach(s => MessageBox.Show(s)); 
1

आपको लूप की आवश्यकता नहीं है। बस LINQ का उपयोग करें:

List<MyClass> aList = new List<MyClass>(); 

// add data to aList 

aList.OrderBy(x=>x.MyStringProperty); 
संबंधित मुद्दे

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