狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#編程技巧:輕松遍歷枚舉類型

admin
2024年10月22日 8:3 本文熱度 470

在C#中,枚舉(enum)是一種特殊的數據類型,它允許我們為整型值賦予更易于理解的名稱。有時可能需要遍歷枚舉的所有成員,例如,為了顯示或處理每個枚舉值。

以下是如何遍歷枚舉的幾種常見方法:

方法一:使用 Enum.GetNames 和 Enum.GetValues

Enum.GetNames 方法返回一個包含枚舉中所有成員名稱的字符串數組,而 Enum.GetValues 方法返回一個包含枚舉中所有成員值的數組。

?using System;
enum Colors{    Red,    Green,    Blue,    Yellow}
class Program{    static void Main()    {        // 使用 Enum.GetNames 遍歷枚舉名稱        string[] names = Enum.GetNames(typeof(Colors));        foreach (string name in names)        {            Console.WriteLine(name);        }

       // 使用 Enum.GetValues 遍歷枚舉值        Array values = Enum.GetValues(typeof(Colors));        foreach (Colors color in values)        {            Console.WriteLine(color);        }    }}

方法二:使用 foreach 和強制轉換

可以直接將枚舉類型轉換為數組,然后使用 foreach 循環遍歷。

using System;
enum Colors{    Red,    Green,    Blue,    Yellow}
class Program{    static void Main()    {        // 直接將枚舉類型轉換為數組并遍歷        Colors[] colorsArray = (Colors[])Enum.GetValues(typeof(Colors));        foreach (Colors color in colorsArray)        {            Console.WriteLine(color);        }    }}

方法三:使用泛型方法

可以創建一個泛型方法來遍歷任何枚舉類型。

using System;using System.Collections.Generic;
enum Colors{    Red,    Green,    Blue,    Yellow}
class Program{    static void Main()    {        PrintEnumValues<Colors>();    }

   static void PrintEnumValues<TEnum>() where TEnum : struct, Enum    {        foreach (TEnum value in Enum.GetValues(typeof(TEnum)))        {            Console.WriteLine(value);        }    }}

在這個例子中,PrintEnumValues 方法是一個泛型方法,它接受一個類型參數 TEnum,該參數必須是 struct 和 Enum 類型的約束。這使得我們可以將任何枚舉類型傳遞給這個方法并遍歷其值。


方法四:使用 Enum.IsDefined(不常用,但可用于特定需求)

雖然 Enum.IsDefined 通常用于檢查某個值是否在枚舉中定義,但可以結合它和一些循環來遍歷枚舉。然而,這種方法不太常用,且效率較低,因為需要手動管理循環的邊界。

using System;
enum Colors{    Red = 0,    Green = 1,    Blue = 2,    Yellow = 3}
class Program{    static void Main()    {        int minValue = (int)Enum.GetValues(typeof(Colors)).GetValue(0);        int maxValue = (int)Enum.GetValues(typeof(Colors)).GetValue(Enum.GetValues(typeof(Colors)).Length - 1);

       for (int i = minValue; i <= maxValue; i++)        {            if (Enum.IsDefined(typeof(Colors), i))            {                Colors color = (Colors)i;                Console.WriteLine(color);            }        }    }}

這種方法雖然可以實現目標,但不如前面幾種方法直觀和高效。


該文章在 2024/10/23 9:55:48 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved