C# 下拉到枚举

C# 下拉到枚举,c#,enums,drop-down-menu,C#,Enums,Drop Down Menu,我想将所选值的字符串输出从下拉列表转换为枚举。 最好的方法是什么?如果你说的是C(只是猜测)-> Enum.Parse(…) 编辑: 以下是MSDN文档:如果您正在谈论C#(只是猜测)-> Enum.Parse(…) 编辑: 以下是MSDN文档:如果要在下拉列表中存储字符串,还可以使用块。您是否考虑过使用枚举值填充下拉列表?请参见此处。如果要在下拉列表中存储字符串,还可以使用块。您是否考虑过使用枚举值填充下拉列表?请参见此处。您可以将其包装到扩展方法中,以简化调用: public static

我想将所选值的字符串输出从下拉列表转换为枚举。 最好的方法是什么?

如果你说的是C(只是猜测)->

Enum.Parse(…)

编辑: 以下是MSDN文档:

如果您正在谈论C#(只是猜测)->

Enum.Parse(…)

编辑:
以下是MSDN文档:

如果要在下拉列表中存储字符串,还可以使用块。您是否考虑过使用枚举值填充下拉列表?请参见此处。

如果要在下拉列表中存储字符串,还可以使用块。您是否考虑过使用枚举值填充下拉列表?请参见此处。

您可以将其包装到扩展方法中,以简化调用:

public static T ToEnum<T>(this string value) {

    if (string.IsNullOrWhiteSpace(value)) {
        throw new ArgumentNullException("Cannot convert null or empty string to an enum");
    }

    // Get enum from the built-in Parse method
    return (T)Enum.Parse(typeof(T), value, true);

}
public static T ToEnum(此字符串值){
if(string.IsNullOrWhiteSpace(value)){
抛出新ArgumentNullException(“无法将null或空字符串转换为枚举”);
}
//从内置解析方法获取枚举
返回(T)Enum.Parse(typeof(T),value,true);
}
然后打电话

myValue.ToEnum<EnumNameHere>();
myValue.ToEnum();

要获取枚举,可以将其包装到扩展方法中,以使调用更容易:

public static T ToEnum<T>(this string value) {

    if (string.IsNullOrWhiteSpace(value)) {
        throw new ArgumentNullException("Cannot convert null or empty string to an enum");
    }

    // Get enum from the built-in Parse method
    return (T)Enum.Parse(typeof(T), value, true);

}
public static T ToEnum(此字符串值){
if(string.IsNullOrWhiteSpace(value)){
抛出新ArgumentNullException(“无法将null或空字符串转换为枚举”);
}
//从内置解析方法获取枚举
返回(T)Enum.Parse(typeof(T),value,true);
}
然后打电话

myValue.ToEnum<EnumNameHere>();
myValue.ToEnum();

要获取枚举

您在谈论什么语言/框架?您在谈论什么语言/框架?我尝试了enum.Parse(((System.Type)n1.n2.n3.enum1)、stringval、true);但给出的错误是,enum1是当前上下文中无效的类型,其中n1.n2.n3是声明公共enum enum1的命名空间。我尝试了enum.Parse(((System.type)n1.n2.n3.enum1),stringval,true);但给出了一个错误,即enum1在当前上下文中是无效的类型,其中n1.n2.n3是声明公共enum enum1的命名空间。您好,这对我有用:n1.n2.n3.enum=(n1.n2.n3.enum)enum.Parse(typeof(n4.n5.n6.enum),stringval),其中n1..6是定义各自枚举的名称空间。谢谢evryone的帮助。谢谢,这对我很有用:n1.n2.n3.enum=(n1.n2.n3.enum)enum.Parse(typeof(n4.n5.n6.enum),stringval),其中n1..6是定义各自枚举的名称空间。谢谢evryone的帮助。谢谢