কম্পিউটার টিউটোরিয়াল

C#-তে Enum-এর কনস্ট্যান্ট মানগুলোর অ্যারে পাওয়ার পদ্ধতি (GetEnumValues)

Type.GetEnumValues() মেথড ব্যবহার করে একটি enum টাইপের সব কনস্ট্যান্ট মানগুলোর অ্যারে পাওয়ার সুযোগ থাকে। এটি Array রিটার্ন করে (প্রতিটি উপাদান enum-এর আন্ডারলাইং টাইপের, সাধারণত int)। এর সাথে GetEnumNames() (নামগুলো) এবং GetEnumUnderlyingType() (আন্ডারলাইং টাইপ) ব্যবহার করা হয়।

উদাহরণ ১: ভুল টাইপ (int) এ কল করা (ArgumentException)

using System;

public class Demo {
    enum Vehicle { Car, Bus, Bike, Airplane }
    
    public static void Main() {
        try {
            Type type = typeof(int); // ভুল: int একটি enum নয়
            string[] str = type.GetEnumNames();
            Console.WriteLine("GetEnumNames() দিয়ে কনস্ট্যান্ট নাম = " + str);
            
            Type type2 = type.GetEnumUnderlyingType();
            Console.Write("Enum আন্ডারলাইং টাইপ = " + type2);
            
            Array arrObj = type.GetEnumValues();
            Console.Write("মানগুলো = {0}" + arrObj);
            Console.WriteLine("\nকনস্ট্যান্ট লিস্টিং ..");
            for (int i = 0; i < str.Length; i++) {
                Console.Write("{0} ", str[i]);
            }
        }
        catch (ArgumentException e) {
            Console.WriteLine("এটি Enum নয়!");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

আউটপুট

এটি Enum নয়!
System.ArgumentException

উদাহরণ ২: সঠিক Enum টাইপে কল করা

using System;

public class Demo {
    enum Vehicle { Car, Bus, Bike, Airplane }
    
    public static void Main() {
        try {
            Vehicle v = Vehicle.Bike;
            Type type = v.GetType(); // সঠিক: Enum টাইপ
            string[] str = type.GetEnumNames();
            Console.WriteLine("GetEnumNames() দিয়ে কনস্ট্যান্ট নাম = " + str);
            
            Type type2 = type.GetEnumUnderlyingType();
            Console.Write("Enum আন্ডারলাইং টাইপ = " + type2);
            
            Array arrObj = type.GetEnumValues();
            Console.Write("মানগুলো = " + arrObj);
            Console.WriteLine("\nকনস্ট্যান্ট লিস্টিং ..");
            for (int i = 0; i < str.Length; i++) {
                Console.Write("{0} ", str[i]);
            }
        }
        catch (ArgumentException e) {
            Console.WriteLine("এটি Enum নয়!");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

আউটপুট

GetEnumNames() দিয়ে কনস্ট্যান্ট নাম = System.String[]
Enum আন্ডারলাইং টাইপ = System.Int32
মানগুলো = Demo+Vehicle[]
কনস্ট্যান্ট লিস্টিং ..
Car Bus Bike Airplane

দ্রষ্টব্য: GetEnumValues() শুধু Enum টাইপে কাজ করে। আউটপুটে Array.ToString() ডিফল্ট ফরম্যাট দেখাচ্ছে (টাইপ নাম)। মানগুলো পেতে foreach বা キャスト ব্যবহার করুন। আধুনিক C#-এ Enum.GetValues<T>() (জেনেরিক) ব্যবহার করা সহজ।

  1. বর্তমান এনামারেশন টাইপের সদস্যদের নাম পান C#-এ

  2. C#-এ বর্তমান ইন্সট্যান্সের টাইপ পান

  3. C#-এ StringDictionary-র মান সংগ্রহ পান

  4. C#-এ জ্যাগড অ্যারে (Jagged Array) এর এলিমেন্টের টাইপ