迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

C# 将字符串转换为枚举类型

作者:迹忆客 最近更新:2024/01/16 浏览次数:

在 C# 中,我们使用 Enum.Parse()Enum.TryParse() 方法将字符串转换为枚举类型。这里我们都给出了示例,但是我们建议你在将字符串转换为枚举时使用 Enum.TryParse() 方法。


C# 从字符串到枚举 enum 的转换-使用 Enum.Parse()Enum.TryParse() 方法

为了将字符串转换为枚举,我们可以使用 Enum.Parse() 方法。你必须在程序文件顶部包含 System,因为 Enum.Parse() 是静态方法。

枚举类型,字符串值和指示符(可选)是此方法的参数。以下是使用 Enum.Parse()Enum.TryParse() 的正确语法:

EnumName VariableName = (EnumName)Enum.Parse(typeof(EnumName), StringValue);
EnumName VariableName = (EnumName)Enum.Parse(typeof(EnumName), StringValue,
                                             indicator);  // indicator can be true or false
// To implement Enum.TryParse()
EnumName VariableName;
Enum.TryParse(StringValue, out VariableName);

现在,我们将在 C# 程序中实现此功能。

C# 使用 Enum.Parse() 将字符串转换为枚举 enum

using System;
class Conversion {
  enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
  static void Main() {
    string stringvalue = "Rose";
    Flowers Flower = (Flowers)Enum.Parse(typeof(Flowers), stringvalue);
    // To check if we have converted successfully
    if (Flower == Flowers.Rose) {
      Console.WriteLine("The Flower is Rose");
    }
  }
}

输出:

The Flower is Rose

在这里,我们有一个名为 Flower 的枚举,其中包含多个常量及其各自的值。我们调用了 Enum.Parse() 方法,将字符串值 Rose 转换为枚举。typeof(Flowers) 将返回枚举类型。最后,我们检查了转换是否成功。

有时,如果我们尝试转换的字符串在枚举中不可用,则可能会发生异常。为了避免这种情况,我们将使用 try-catch 块。


C# 使用 Enum.Parse() 方法将字符串转换为枚举的异常处理

using System;

class Conversion {
  enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
  static void Main() {
    stringvalue = "Jasmine";
    try {
      Flowers Flower = (Flowers)Enum.Parse(typeof(Flowers), stringvalue);
    } catch (Exception ex) {
      Console.WriteLine("Not Possible");
      // Set value to none
      Flower = Flowers.none;
    }
  }
}

输出:

Not Possible

C# 使用 Enum.TryParse() 将字符串转换为枚举 enum

using System;
enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
class Conversion {
  static void Main() {
    string stringvalue = "Rose";
    // Using Enum.TryParse()
    Flowers Flower;
    if (Enum.TryParse(stringvalue, out Flower)) {
      Console.WriteLine(Flower == Flowers.Rose);
    }
  }
}

输出:

True

我们也可以在 Enum.TryParse() 方法中将枚举中的常量值作为参数传递。以下程序实现了这一点:

using System;

enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
class Conversion {
  static void Main() {
    Flowers Flower;

    if (Enum.TryParse("3", out Flower)) {
      Console.WriteLine(Flower);
    }
  }
}

输出:

Rose

你也可以使用 Enum.IsDefined() 方法检查要转换的字符串值是否在枚举中定义。


C# 使用 Enum.IsDefined() 方法检查字符串值是否存在

using System;

enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }

class Conversion {
  static void Main() {
    Console.WriteLine(Enum.IsDefined(typeof(Flowers), "Rose"));
  }
}

输出:

True

结论

Enum.Parse()Enum.TryParse() 是用于将字符串转换为枚举的方法。但是,最好是使用 Enum.TryParse()

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C# 中发出 HTTP POST Web 请求

发布时间:2024/02/04 浏览次数:131 分类:编程语言

在 C# 中,可以使用 3 种主要方法来发出 HTTP POST Web 请求:WebClient 类,HttpWebRequest 类和 HttpClient 类。本教程将讨论在 C# 中发出 HTTP POST Web 请求的方法。使用 C# 中的 WebClient 类发出 HTTP POST Web 请求

在 C# 中调整图像大小

发布时间:2024/02/04 浏览次数:203 分类:编程语言

有两种主要方法可用于在 C# 中调整图像的大小,Bitmap 类构造函数和 graphics.DrawImage()函数。在本教程中,我们将讨论在C#中调整图像大小的方法。我们将带您完成整个过程,从加载原始图像到保

在 C# 中下载图片

发布时间:2024/02/04 浏览次数:138 分类:编程语言

有 3 种主要方法可用于下载 C# 中的图片,WebClient.DownloadFile()函数,Bitmap 类和 Image.FromStream()函数。在 C# 中使用 WebClient 类下载图片 WebClient 类提供了用于向 C# 中的 URL 发送数据和从 URL 接收数据

在 C# 中使用秒表

发布时间:2024/02/04 浏览次数:139 分类:编程语言

我们可以使用 Stopwatch 类来计算 C# 中的经过时间。使用 C# 中的秒表类计算经过时间 Stopwatch 类在 C# 中准确测量经过的时间。

在 C# 中获取可执行路径

发布时间:2024/02/04 浏览次数:200 分类:编程语言

有 3 种主要方法可用于获取 C# 中程序的可执行路径,即 Assembly 类,AppDomain 类和 Path 类。本教程将介绍获取 C# 代码的可执行路径的方法。使用 C# 中的 Assembly 类获取可执行路径

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便