2010-10-13 13 views
12

संभव डुप्लिकेट:
C#: How to enumerate an enum?सी # और foreach में Enum

हाय सभी,

मैं एक Enum

public enum AttributeType 
    { 
     TextField = 1, 
     TextArea = 2, 
     Date = 4, 
     Boolean = 8 
    } 

मैं इस enum foreach करना चाहते हैं और इसके ऑब्जेक्ट सरणी बनाओ I n इस प्रारूप

object data = new object[] 
{ 
    // new object[] { 1,"TextField"} 
    new object[] { enumValue, enumText} 
}; 
+0

@closers: जो पोस्ट के डुप्लिकेट? मैंने नेट पर अपनी समस्या की खोज की और पहले परिणाम के साथ यहां समाप्त हो गया। शायद आपको "मूल" पोस्ट में लिंक जोड़ना चाहिए। –

+0

संभावित रूप से इसका डुप्लिकेट: http://stackoverflow.com/questions/105372/how-do-i-enumerate-an-enum – KettuJKL

उत्तर

18

खैर, यह यह (.NET 3.5 कल्पना करते हुए) करना होगा:

var allValues = (AttributeType[]) Enum.GetValues(typeof(AttributeType)); 

var array = allValues.Select(value => new object[] { value, value.ToString() }) 
        .ToArray(); 

या एक गुमनाम प्रकार का उपयोग करें:

var array = allValues.Select(value => { Value = value, Name = value.ToString() }) 
        .ToArray(); 
+0

आपको वास्तव में उस की आवश्यकता नहीं है '(विशेषता प्रकार []) ':) – leppie

+1

@leppie: आप या तो उस की आवश्यकता है या कास्ट करने के लिए कॉल, यह देखते हुए कि Enum.GetValues ​​सिर्फ ऐरे देता है। –

+0

अरघ, आप सामान्य रूप से सही हैं, मैं सोच रहा था (गलत तरीके से) यह 'IEnumerable 'वैसे भी होगा ... (ओओएस)। – leppie

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