เมธอด 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) | bool | Parse แบบปลอดภัย |
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