首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 列舉操作實務:取得名稱值、自訂數值與 Parse 轉換

     編輯:關於C語言

取得所有名稱與值


enum MyEnum { AA, BB, CC }

// 名稱
foreach (string s in Enum.GetNames(typeof(MyEnum)))
    Console.WriteLine(s); // AA, BB, CC

// 值
foreach (int n in Enum.GetValues(typeof(MyEnum)))
    Console.WriteLine(n); // 0, 1, 2

自訂數值

預設從 0 起始遞增,可手動指定:


enum MyEnum { AA = 2, BB, CC = 7, DD, EE }
// 值:2, 3, 7, 8, 9

foreach (int i in Enum.GetValues(typeof(MyEnum)))
    Console.WriteLine(i); // 2, 3, 7, 8, 9

未指定者遞增 1,允許重複值 (不同名稱對應同一數值)。

數值/字串轉列舉


enum MyEnum { AA, BB, CC }

// 數值 → 列舉
MyEnum e1 = (MyEnum)1; // BB

// 字串 → 列舉
MyEnum e2 = (MyEnum)Enum.Parse(typeof(MyEnum), "BB"); // BB
// 或
Enum.TryParse("BB", out MyEnum e3); // 建議用 TryParse

列舉轉字串/數值


MyEnum e = MyEnum.CC;
Console.WriteLine(e);           // "CC"
Console.WriteLine((int)e);      // 2
Console.WriteLine(e.ToString()); // "CC"
Console.WriteLine(Convert.ToString(e)); // "CC"

效能提示

  • 頻繁轉換熱路徑:快取 `Enum.GetNames/Values` 結果
  • 避免在迴圈中重複 `Enum.Parse`,改用字典映射
  • `HasFlag` 會產生裝箱,極度敏感可用位元運算 `&` 替代
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved