2013-07-25 7 views
6

के लिए वेब और उस्तरा विजुअल स्टूडियो एक्सप्रेस 2012 का उपयोग से एक पाठ आइटम जाओ, मैं एक का चयन करें सूची बनाएं:एक ग # selectList

List<SelectListItem> list = new List<SelectListItem>(); 
list.Add(new SelectListItem { Text = "Yes", Value = "1" }); 
list.Add(new SelectListItem { Text = "No", Value = "2" }); 

SelectList selectList = new SelectList(list, "Value", "Text", null); 

बाद में, मैंने selectList में एक विशिष्ट तत्व से संबंधित पाठ करना चाहते हैं। एक नौसिखिया के रूप में, मुझे लगता है मैं ऐसा कर सकता है लगता है कि:

selectList.Items[1].Text 

लेकिन उस संदेश प्राप्त होता है,

"प्रकार के 'System.Collections.IEnumerable' एक अभिव्यक्ति के लिए [] के साथ अनुक्रमण लागू नहीं कर सकता"

धन्यवाद।

उत्तर

11

आप कोशिश कर सकते हैं:

selectList.Skip(1).First().Text; 

या:

selectList.Where(p => p.Value == "2").First().Text; 
+0

धन्यवाद फ्रांसिस्को। "SelectList.Skip (1) प्रथम() पाठ;।" पूरी तरह से काम किया। "कहां" खंड मेरी मूल पोस्ट में काम करेगा, लेकिन हकीकत में "मान" को इंडेक्स के समान ही गिना जाता है [] (मेरे पास केवल इंडेक्स नंबर है)। –

+0

* दोनों का उपयोग करने की आवश्यकता नहीं है। जहां (ए => बी) * और फिर * सबसे पहले() *। बस * सबसे पहले (ए => बी) * का उपयोग करें, जो ठीक उसी तरह काम करता है। –

3

आप इसे एक List जो देना होगा कि आप एक इंडेक्सर को एक्सेस करने के लिए परिवर्तित कर सकते हैं

selectList.Items.ToList()[1].Text 
+0

वास्तव में यह काम नहीं करता है – GolfWolf

+0

@ w0lf यह किस तरह से काम नहीं करता है? – James

+0

मेरे लिए यह संकलित नहीं करता है; 'selectList.Items' में' ToList' प्रतीत नहीं होता है। क्या मैं कुछ भूल रहा हूँ? – GolfWolf

0

इस

selectList.Items.ElementAt(0); 

जरूरत using System.Linq नाम स्थान का प्रयास करें

+0

यह काम नहीं करता है। ElementAt() IENumerable का सदस्य नहीं है। –

0

हो सकता है कि यह आपके लिए क्या देख रहे है?

selectList.Items.FindByValue("1").Text