簡體   English   中英

C#- 給定一個枚舉名稱作為字符串返回枚舉的所有值

[英]C#- Given an an enum name as a string return all values of enum

我有一個枚舉名稱列表。 如果有幫助,此列表可能更具有描述性,以具有諸如 Library.Base.Enums.{EnumName} 之類的枚舉路徑。枚舉可以位於不同的文件夾中,例如 MyEnumCategories 可以存儲在文件夾 Library/Base/Enums/Category/ MyEnumCities 可能位於 Library/Base/Enums/Locations/ 中。 我有一個不斷增長的枚舉名稱列表,我需要能夠從列表中獲取存儲在枚舉中的所有值。 我需要返回枚舉的所有值,如下所示:

List<string> enumNames=["MyEnumCategories","MyEnumCities"]
List<string> values = new List<strings>

public enum MyEnumCategories
{
    Service = 0,
    Corporate = 1,
    Enterprise = 2,
    AllSites = 3,
    IndividualSites = 4,
    Site = 5,
    Notification = 6
}
public enum MyEnumCities
{
    Chicago= 0,
    Boston= 1,
    NewYork= 2,
    Denvor= 3,
    Austin= 4,
    Seattle= 5,
    SanFrancisco= 6
}

OUTPUT:值=[“服務”,“公司”,“企業”,....“西雅圖”,“舊金山”,]

使用 linq 快速輕松。 如果您想跨越多個程序集或添加不區分大小寫或部分匹配等,您將需要添加一些額外的位。

var enumNames = new[] { "MyEnumCategories", "MyEnumCities" };
var enumTypes = Assembly.GetExecutingAssembly().GetTypes().Where(x => x.IsEnum && enumNames.Contains(x.Name));
var values = enumTypes.SelectMany(Enum.GetNames).ToArray();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM