C# में सभी Enum मानों को कैसे सूचीबद्ध करें: शुरुआती लोगों के लिए पूर्ण विश्लेषण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

प्रश्न "How can I enumerate an enum?" इतना लोकप्रिय क्यों है?

\n\n

यदि आपने कभी C# में कोड लिखा है और गणनाओं (enum) का सामना किया है, तो आपने निश्चित रूप से सोचा होगा: "मैं इस enum के सभी मान कैसे प्राप्त करूं?" यह प्रश्न Stack Overflow पर एक वास्तविक हिट है, जिसने हजारों बार देखा गया है। और यह आश्चर्य की बात नहीं है: enum गणना उन कार्यों में से एक है जो सरल लगता है, लेकिन सही सिंटैक्स के ज्ञान के बिना यह एक अनुभवी डेवलपर को भी असमंजस में डाल सकता है।

\n\n

इस लेख में, हम चर्चा करेंगे कि C# में सभी enum मानों को सही तरीके से कैसे सूचीबद्ध करें, काम करने वाले कोड उदाहरण दिखाएंगे जिन्हें आप सीधे अपने प्रोजेक्ट में कॉपी कर सकते हैं, और संभावित समस्याओं के बारे में बताएंगे। चलिए शुरू करते हैं!

\n\n

C# में enum क्या है? एक संक्षिप्त अनुस्मारक

\n\n

Enum (गणना) एक डेटा प्रकार है जो आपको नामित स्थिरांकों का एक सेट परिभाषित करने की अनुमति देता है। उदाहरण के लिए, सप्ताह के दिन, ऑर्डर की स्थिति या त्रुटियों के प्रकार। C# में enum इस प्रकार घोषित किया जाता है:

\n\n
public enum DayOfWeek\n{\n    Monday,\n    Tuesday,\n    Wednesday,\n    Thursday,\n    Friday,\n    Saturday,\n    Sunday\n}
\n\n

प्रत्येक तत्व को डिफ़ॉल्ट रूप से एक पूर्णांक मान (0 से शुरू) दिया जाता है। लेकिन अक्सर enum के सभी तत्वों को पुनरावृत्त करने की आवश्यकता होती है - उदाहरण के लिए, उन्हें ड्रॉप-डाउन सूची में प्रदर्शित करने, एक सरणी बनाने या यह जांचने के लिए कि कोई मान मौजूद है या नहीं।

\n\n

सभी enum मानों को कैसे सूचीबद्ध करें: मूल विधि

\n\n

सबसे लोकप्रिय और सरल तरीका स्थैतिक विधि Enum.GetValues() का उपयोग करना है। यह निर्दिष्ट गणना के सभी मानों की एक सरणी लौटाता है। यह इस प्रकार काम करता है:

\n\n
using System;\n\npublic class Program\n{\n    public enum Status\n    {\n        New,\n        InProgress,\n        Completed,\n        Cancelled\n    }\n\n    public static void Main()\n    {\n        // सभी enum मान प्राप्त करें\n        Status[] allStatuses = (Status[])Enum.GetValues(typeof(Status));\n\n        // foreach का उपयोग करके उन्हें पुनरावृत्त करें\n        foreach (Status status in allStatuses)\n        {\n            Console.WriteLine(status);\n        }\n    }\n}
\n\n

निष्पादन का परिणाम:

\n
New\nInProgress\nCompleted\nCancelled
\n\n

ध्यान दें: हम परिणाम को स्पष्ट रूप से Status[] सरणी में बदल रहे हैं, क्योंकि Enum.GetValues() एक Array (गैर-टाइप किया हुआ) लौटाता है।

\n\n

विकल्प: Enum.GetNames()

\n\n

यदि आपको मानों की नहीं, बल्कि केवल उनके स्ट्रिंग नामों की आवश्यकता है, तो Enum.GetNames() का उपयोग करें:

\n\n
string[] statusNames = Enum.GetNames(typeof(Status));\nforeach (string name in statusNames)\n{\n    Console.WriteLine(name);\n}
\n\n

परिणाम वही होगा, लेकिन तत्व का प्रकार string होगा, न कि Status। यह तब सुविधाजनक होता है जब आप UI या सीरियलाइज़ेशन के साथ काम कर रहे हों।

\n\n

आधुनिक दृष्टिकोण: जेनेरिक संस्करण (C# 7.3+)

\n\n

C# 7.3 से शुरू करके, हमारे पास एक अधिक सुरुचिपूर्ण तरीका है - Enum.GetValues<T>()। यह एक विशिष्ट प्रकार की सरणी लौटाता है, और रूपांतरण की आवश्यकता नहीं है:

\n\n
Status[] allStatuses = Enum.GetValues<Status>();\n\nforeach (Status status in allStatuses)\n{\n    Console.WriteLine($"ID: {(int)status}, Name: {status}");\n}
\n\n

यह विधि छोटी और प्रकार के दृष्टिकोण से अधिक सुरक्षित है। यदि आप C# के आधुनिक संस्करण का उपयोग कर रहे हैं (और आपको करना चाहिए!), तो मैं इसकी अनुशंसा करता हूं।

\n\n

वास्तविक जीवन का उदाहरण: ड्रॉप-डाउन सूची भरना

\n\n

कल्पना करें कि आप कार्य प्रबंधन के लिए एक एप्लिकेशन लिख रहे हैं। आपको उपयोगकर्ता को ड्रॉप-डाउन मेनू में संभावित स्थितियों की सूची दिखानी होगी। यह enum गणना का उपयोग करके इस प्रकार किया जाता है:

\n\n
using System;\nusing System.Collections.Generic;\n\npublic class TaskManager\n{\n    public enum TaskStatus\n    {\n        NotStarted,\n        InProgress,\n        WaitingForReview,\n        Done\n    }\n\n    publ                

ब्लॉग

पुस्तक अनुशंसाएँ