将枚举集合转换为字典给定类型

我正在寻找一个将Enum转换为字典列表的函数。枚举名称也将转换为更易读的形式。我只想调用该函数,提供枚举类型,然后返回字典。我相信我快到了,我似乎无法弄清楚如何将枚举转换为正确的类型。(在“ returnList.Add”行上获取错误)。现在,我只是使用var作为类型,但是我确实知道类型,因为它已经传入。

internal static Dictionary<int,string> GetEnumList(Type e)
{
    List<string> exclusionList =
    new List<string> {"exclude"};

    Dictionary<int,string> returnList = new Dictionary<int, string>();

    foreach (var en in Enum.GetValues(e))
    {
        // split if necessary
        string[] textArray = en.ToString().Split('_');

        for (int i=0; i< textArray.Length; i++)
        {
            // if not in the exclusion list
            if (!exclusionList
                .Any(x => x.Equals(textArray[i],
                    StringComparison.OrdinalIgnoreCase)))
            {
                textArray[i] = Thread.CurrentThread.CurrentCulture.TextInfo
                    .ToTitleCase(textArray[i].ToLower());
            }
        }

        returnList.Add((int)en, String.Join(" ", textArray));
    }

    return returnList;
}
谢尔盖·别列佐夫斯基(Sergey Berezovskiy)

您可以使用通用方法,该方法将使用枚举值和名称创建字典:

public static Dictionary<int, string> GetEnumList<T>()
{
    Type enumType = typeof(T);
    if (!enumType.IsEnum)
        throw new Exception("Type parameter should be of enum type");

    return Enum.GetValues(enumType).Cast<int>()
               .ToDictionary(v => v, v => Enum.GetName(enumType, v));
}

可以根据需要随意修改默认枚举名称。用法:

var daysDictionary = Extensions.GetEnumList<DayOfWeek>();
string monday = daysDictionary[1];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将枚举转换为给定类型的列表

来自分类Dev

将枚举转换为F#中的列表或序列或通用集合类型

来自分类Dev

将整数值转换为枚举类型

来自分类Dev

将枚举类型从Rust转换为Java

来自分类Dev

将枚举类型从Rust转换为Java

来自分类Dev

Python将列表字典转换为集合字典?

来自分类Dev

按类型将集合转换为数组

来自分类Dev

liquibase无法将类型枚举转换为枚举

来自分类Dev

将类型实例转换为字典

来自分类Dev

将具有枚举值的Swift字典转换为NSDictionary

来自分类Dev

如何将元组集合转换为字典?

来自分类Dev

如何将数据框转换为集合字典?

来自分类Dev

在Groovy中将字符串集合的类型强制转换为枚举集合

来自分类Dev

在Groovy中将字符串集合的类型强制转换为枚举集合

来自分类Dev

如何将“str”类型的字典转换为“dict”类型

来自分类Dev

将整数转换为枚举类型是否正确?

来自分类Dev

将枚举类型转换为整数,反之亦然

来自分类Dev

C#将枚举类型转换为结构

来自分类Dev

如何将ODataEnumValue转换为其CLR枚举类型?

来自分类Dev

将具有重复基础值的枚举转换为字符串和枚举的字典

来自分类Dev

给定一个字典,其中值可能是不同的类型,如何将python字典简洁地转换为元组列表?

来自分类Dev

给定一个字典,其中值可能是不同的类型,如何将python字典简洁地转换为元组列表?

来自分类Dev

将集合转换为可散列类型

来自分类Dev

Oracle APEX - 将字段从集合转换为 DATE 类型

来自分类Dev

将动态类型转换为字典C#

来自分类Dev

将动态类型转换为字典C#

来自分类Dev

将枚举转换为逻辑

来自分类Dev

将“ weekstring”转换为枚举

来自分类Dev

将Rust枚举转换为子枚举

Related 相关文章

  1. 1

    将枚举转换为给定类型的列表

  2. 2

    将枚举转换为F#中的列表或序列或通用集合类型

  3. 3

    将整数值转换为枚举类型

  4. 4

    将枚举类型从Rust转换为Java

  5. 5

    将枚举类型从Rust转换为Java

  6. 6

    Python将列表字典转换为集合字典?

  7. 7

    按类型将集合转换为数组

  8. 8

    liquibase无法将类型枚举转换为枚举

  9. 9

    将类型实例转换为字典

  10. 10

    将具有枚举值的Swift字典转换为NSDictionary

  11. 11

    如何将元组集合转换为字典?

  12. 12

    如何将数据框转换为集合字典?

  13. 13

    在Groovy中将字符串集合的类型强制转换为枚举集合

  14. 14

    在Groovy中将字符串集合的类型强制转换为枚举集合

  15. 15

    如何将“str”类型的字典转换为“dict”类型

  16. 16

    将整数转换为枚举类型是否正确?

  17. 17

    将枚举类型转换为整数,反之亦然

  18. 18

    C#将枚举类型转换为结构

  19. 19

    如何将ODataEnumValue转换为其CLR枚举类型?

  20. 20

    将具有重复基础值的枚举转换为字符串和枚举的字典

  21. 21

    给定一个字典,其中值可能是不同的类型,如何将python字典简洁地转换为元组列表?

  22. 22

    给定一个字典,其中值可能是不同的类型,如何将python字典简洁地转换为元组列表?

  23. 23

    将集合转换为可散列类型

  24. 24

    Oracle APEX - 将字段从集合转换为 DATE 类型

  25. 25

    将动态类型转换为字典C#

  26. 26

    将动态类型转换为字典C#

  27. 27

    将枚举转换为逻辑

  28. 28

    将“ weekstring”转换为枚举

  29. 29

    将Rust枚举转换为子枚举

热门标签

归档