根據列舉的型別名稱獲取列舉型別列表

2022-02-21 04:00:35 字數 1319 閱讀 6164

前端進行搜尋或其他操作時需要獲取列舉列表,每個列舉寫乙個介面比較繁瑣,所以這裡根據列舉型別名獲取列表

以下為**示例

public class enumdto

/// /// 值

///

public int value

/// /// 描述

///

public string description

}

using system.componentmodel;

using system.reflection;

namespace system

}}

public class enumexception:exception

public enumexception(string message):base(message)

}

/// /// 列舉幫助類

///

public class enumhelper

.", false);

if (enuminfo != null)}}

if (enumlist.count == 0) return default;

if (enumlist.count > 1)

throw new enumexception($"列舉【】存在多個,請檢查命名空間【】");

var enums = enum.getvalues(enumlist.firstordefault());

listenumdic = new list();

foreach (enum item in enums));}

return enumdic;

}}

如果多個程式集 和 多個命名空間出現一樣的列舉型別將會丟擲異常

執行當前方法的程式集需要引用使用到的程式集

例如當前使用到的程式集名稱為enumlist

當前使到的命名空間為enumlist.enums

當前需要獲取的列舉型別為usertype

static void main(string args)

,new , enumname);

foreach (var item in dic)

,value:,描述:");

}console.readkey();

}

C 根據列舉的key值獲取列舉name名稱

public enum subjectenum 語文 1,數學 2,英語 3,物理 4,化學 5,地理 6,生物 7,歷史 8,政治 9,根據數值獲取列舉的name public string getenumnamebykey int key return subjectenum.getname t...

使用列舉型別的值建立列舉型別

列舉型別中不僅可以宣告列舉的名稱,還可以加入附加的值如下式 public static enum pushtype public string tostring 其中push type sys稱為列舉的name,0則為列舉型別的value,那如何才能根據列舉型別的value獲取列舉型別的例項呢?見下...

擴充套件型別 列舉型別

擴充套件型別 型別別名 列舉 介面 類。在型別約束位置,會產生重複 可以使用型別別名解決該問題 邏輯含義和真實的值產生了混淆,會導致修改真實的值的時候,產生大量的修改 字面量型別不會進入到編譯結果,比如我們想迴圈便利它的值,那麼就不行。所以需要使用列舉 enum gender gender.male...