有时候需要把枚举转字符串,那么如何把枚举转字符串?

枚举转字符串

假如需要把枚举转字符串,可以直接把他进行转换,请看代码

        public enum Di
        {
            /// <summary>
            /// 轨道
            /// </summary>
            Railway,

            /// <summary>
            /// 河流
            /// </summary>
            River,
        }

        static void Main(string[] args)
        {
            Console.WriteLine(Di.Railway.ToString());
        }

这样就可以把枚举转字符串

除了这个方法,可以使用 C# 6.0 的关键字,请看代码

            Console.WriteLine(nameof(Di.Railway));

字符串转枚举

如果把一个枚举转字符串,那么如何把字符串转枚举?可以使用 Enum.Parse 不过这个方法可以会抛异常,所以使用需要知道字符串是可以转

        public enum Di
        {
            /// <summary>
            /// 轨道
            /// </summary>
            Railway,

            /// <summary>
            /// 河流
            /// </summary>
            River,
        }

             static void Main(string[] args)
        {
            string str = Di.Railway.ToString();
            Console.WriteLine(Enum.Parse(typeof(Di), str).ToString());
        }

如果对于不确定的字符串,包括空的值,可以采用 TryParse 方法

            if (Enum.TryParse(typeof(Di),null,out var value))
            {
                
            }

上面代码只会返回 false 不会提示无法转换

本文代码放在github欢迎小伙伴访问


本文会经常更新,请阅读原文: https://dotnet-campus.github.io//post/C-%E6%9E%9A%E4%B8%BE%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 lindexi (包含链接: https://dotnet-campus.github.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系