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

C# Enum.GetNames() Method: ดึงชื่อสมาชิกทั้งหมดของ Enum

เมธอด Enum.GetNames(Type enumType) ส่งคืน String Array ของชื่อสมาชิกทั้งหมดใน Enumeration ใช้สำหรับแสดงผล, UI Binding, Validation

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

enum Stock
{
    Watches,
    Books,
    Grocery
}

// ดึงชื่อทั้งหมด
foreach (string name in Enum.GetNames(typeof(Stock)))
{
    Console.WriteLine(name);
}

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

using System;

class Demo
{
    enum Stock
    {
        Watches,
        Books,
        Grocery
    }
    
    static void Main()
    {
        // ดึงชื่อตาม Index (GetName)
        Console.WriteLine("หมวดที่ 1: " + Enum.GetName(typeof(Stock), 0)); // Watches
        Console.WriteLine("หมวดที่ 2: " + Enum.GetName(typeof(Stock), 1)); // Books
        Console.WriteLine("หมวดที่ 3: " + Enum.GetName(typeof(Stock), 2)); // Grocery
        
        Console.WriteLine("ทุกหมวดหมู่:");
        
        // ดึงชื่อทั้งหมด (GetNames)
        foreach (string name in Enum.GetNames(typeof(Stock)))
        {
            Console.WriteLine(name);
        }
    }
}

ผลลัพธ์

หมวดที่ 1: Watches
หมวดที่ 2: Books
หมวดที่ 3: Grocery
ทุกหมวดหมู่:
Watches
Books
Grocery

GetNames vs GetValues

เมธอดคืนค่าใช้เมื่อไหร่
GetNamesstring[]ต้องการชื่อ (Display, UI)
GetValuesArray (Underlying Values)ต้องการค่าตัวเลข (Calculate, Compare)
GetNamestring (Single)ต้องการชื่อของค่าเฉพาะ

การใช้งานร่วมกับ LINQ

var stockNames = Enum.GetNames(typeof(Stock))
    .Select((name, index) => new { Index = index, Name = name })
    .ToList();

var stockDict = Enum.GetValues(typeof(Stock))
    .Cast<Stock>()
    .ToDictionary(e => e.ToString(), e => (int)e);

หมายเหตุ: GetNames ส่งคืนตามลำดับที่ประกาศใน Source Code ไม่ใช่ลำดับค่าตัวเลข