c# - 降低字符串时解析枚举

标签 c# .net enums .net-4.5

我有一个非常有趣的问题,我不确定您是否可以使用这种方法来解决。

我有一些字符串,都是小写的。我们就称它为商业法。现在,我有一个枚举类型,其值为 BusinessLaw

我想做的是将 businesslaw 字符串转换为 BusinessLaw 枚举类型。

通常我会这样做:

return (EnumType) (Enum.Parse(typeof (EnumType), value));

但是,当存在一些大小写差异时,这是不可能的。

你会如何解决这个问题?还是天生无法解决?

最佳答案

您可以使用 the overload of Enum.Parse最后一个参数表示区分大小写:

return (EnumType) (Enum.Parse(typeof (EnumType), value, true));

有一个类似的TryParse overload .

但是,请记住,可能有多个具有相同名称但大小写不同的枚举值:

public enum Awkward
{
    FOO,
    foo,
    Foo,
    fOO
}

如果可能的话,你应该避免使用这样的枚举值:)

关于c# - 降低字符串时解析枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19336203/

相关文章:

python - 在 Python 类型中将枚举转换为文字类型别名

c - C 编译器如何处理枚举?

c# - 在派生类中设置泛型类型属性

c# - 如何提取 xaml/xml 文件中特定标签的所有出现?

c# - 在装有 .NET 3.5 的机器上使用 .NET 4.0 DLL?

C# MVC 类对象引用未设置为对象的实例

c# - Entity Framework 中 DataGrid (WPF) 的优雅过滤

c# - 如何将 JToken 转换为嵌套的 float 列表?

c# - LINQ OrderBy 子句 - 强制特定字符串始终位于顶部

java - 如何在 Java 中将一个值从一个枚举转换为另一个?