Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

C# Enum.GetValues() Method: ดึงค่าทั้งหมดของ Enum

เมธอด Enum.GetValues(Type enumType) ใช้ดึง Array ของค่าทั้งหมดใน Enumeration ใช้สำหรับวนลูป, Binding UI, Validation

ตัวอย่างพื้นฐาน

enum Rank
{
    Jack = 10,
    Tom = 19,
    Tim = 26
}

// ดึงค่าทั้งหมด
foreach (int value in Enum.GetValues(typeof(Rank)))
{
    Console.WriteLine(value);
}

ตัวอย่างสมบูรณ์

using System;

public class Demo
{
    enum Rank
    {
        Jack = 10,
        Tom = 19,
        Tim = 26
    }
    
    public static void Main()
    {
        Console.WriteLine("อันดับนักศึกษา MCA วิทยาลัย ABC:");
        
        foreach (int rank in Enum.GetValues(typeof(Rank)))
        {
            Console.WriteLine(rank);
        }
    }
}

ผลลัพธ์

อันดับนักศึกษา MCA วิทยาลัย ABC:
10
19
26

เมธอด Enum ที่เกี่ยวข้อง

เมธอดคืนค่าคำอธิบาย
GetValues(Type)Arrayค่าทั้งหมด (Underlying Values)
GetNames(Type)string[]ชื่อสมาชิกทั้งหมด
GetName(Type, value)stringชื่อของค่าเฉพาะ
IsDefined(Type, value)boolตรวจสอบว่ามีค่านี้ใน Enum หรือไม่
Parse<T>(string)Tแปลง String เป็น Enum (Throw ถ้าไม่พบ)
TryParse<T>(string, out T)boolParse แบบปลอดภัย

Generic Version (Type-safe)

// ต้องใช้ Reflection หรือ Helper Method
var values = Enum.GetValues(typeof(Rank)).Cast<Rank>();
var names = Enum.GetNames(typeof(Rank));

// หรือ Extension Method
public static T[] GetValues<T>() where T : Enum
    => Enum.GetValues(typeof(T)).Cast<T>().ToArray();

การใช้งานจริง

  • Dropdown/ComboBox Data Binding
  • Validation Input ต่อ Enum
  • Iterate ทุกค่าเพื่อ Processing
  • Serialization/Deserialization