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

枚举转字符串

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

        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://blog.lindexi.com/post/C-%E6%9E%9A%E4%B8%BE%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者收藏我的博客导航

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

微软最具价值专家


无盈利,不卖课,做纯粹的技术博客

以下是广告时间

推荐关注 Edi.Wang 的公众号

欢迎进入 Eleven 老师组建的 .NET 社区

以上广告全是友情推广,无盈利