c# - 在 Enum 中搜索字符串并返回 Enum

标签 c# string enumeration

我有一个枚举:

public enum MyColours
{
    Red,
    Green,
    Blue,
    Yellow,
    Fuchsia,
    Aqua,
    Orange
}

我有一个字符串:

string colour = "Red";

我希望能够返回:

MyColours.Red

来自:

public MyColours GetColour(string colour)

到目前为止我有:

public MyColours GetColours(string colour)
{
    string[] colours = Enum.GetNames(typeof(MyColours));
    int[]    values  = Enum.GetValues(typeof(MyColours));
    int i;
    for(int i = 0; i < colours.Length; i++)
    {
        if(colour.Equals(colours[i], StringComparison.Ordinal)
            break;
    }
    int value = values[i];
    // I know all the information about the matched enumeration
    // but how do i convert this information into returning a
    // MyColour enumeration?
}

如您所见,我有点卡住了。无论如何要按值选择一个枚举器。像这样的东西:

MyColour(2) 

会导致

MyColour.Green

最佳答案

查看 System.Enum.Parse:


enum Colors {Red, Green, Blue}

// your code:
Colors color = (Colors)System.Enum.Parse(typeof(Colors), "Green");

关于c# - 在 Enum 中搜索字符串并返回 Enum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2290262/

相关文章:

c# - 无法从我的解决方案访问配置管理器

c# - 二进制到字符串为二进制?

ios - String ComponentsSeparatedByString 执行一次

java - 枚举 : Why? 什么时候?

ruby - 执行此操作的功能方法是什么? (打破两个嵌套的#each block )

java - 在 Java 中枚举正则表达式的可能匹配项

c# - 如何将渲染变换应用于鼠标位置

c# - 无服务器多用户应用程序/数据库的解决方案?

c# - 从 GridView 中删除行

java - 具有相同字符串值的两个不同变量引用相同的内存地址