c# - 将枚举转换为 List<T> 的一般方法

标签 c#

<分区>

这是一个“奇怪”的问题:

是否可以创建一个方法,在其中将任何枚举转换为列表。这是我目前的想法草稿。

public class EnumTypes
{
   public enum Enum1
   {
      Enum1_Choice1 = 1,
      Enum1_Choice2 = 2
   }

   public enum Enum2
   {
      Enum2_Choice1 = 1,
      Enum2_Choice2 = 2
   }

   public List<string> ExportEnumToList(<enum choice> enumName)
   {
      List<string> enumList = new List<string>();
      //TODO: Do something here which I don't know how to do it.
      return enumList;
   }
}

只是好奇这是否可能以及如何去做。

最佳答案

Enum.GetNames( typeof(EnumType) ).ToList()

http://msdn.microsoft.com/en-us/library/system.enum.getnames.aspx

或者,如果你想变得花哨:

    public static List<string> GetEnumList<T>()
    {
        // validate that T is in fact an enum
        if (!typeof(T).IsEnum)
        {
            throw new InvalidOperationException();
        }

        return Enum.GetNames(typeof(T)).ToList();
    }

    // usage:
    var list = GetEnumList<EnumType>();

关于c# - 将枚举转换为 List<T> 的一般方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15757667/

相关文章:

c# - 是否可以将独立的 C# 应用程序发布到 Linux?

c# - 如何在 OpenTK .NET Core 中设置 OpenGL API 版本?

c# - log4net 不工作

c# - 如何检查Windows用户是否设置了密码?

c# - 如何从客户端脚本访问参数

c# - 当枚举类型也像字符串一样命名时,来自字符串的 ParseEnum

c# - ASP.NET MVC 项目层

c# - WPF 将内容展开到窗口外

c# - 使用 MEF 在运行时加载插件

c# - Outlook/Exchange - 如何以编程方式导出通讯组列表中的用户?