如何在 C# 中将字符串转换为 enum?(Enum.Parse、TryParse、忽略大小写)
大家好!我是 C# 新手,在一个看似简单的任务上卡住了。
我有一个订单状态的枚举(enum):
```csharp
public enum OrderStatus
{
Pending,
Processing,
Shipped,
Delivered,
Cancelled
}
```
用户在文本框中输入状态(例如 "Shipped" 或 "shipped")。我需要将这个字符串转换为 `OrderStatus` 值,以便在程序逻辑中使用。
我尝试直接将字符串赋值给 `OrderStatus` 类型的变量:
```csharp
string userInput = "Shipped";
OrderStatus status = userInput; // 编译错误:无法将类型 'string' 隐式转换为 'OrderStatus'
```
显然,这行不通。我知道有 `Enum.Parse` 方法,但读到如果字符串不在 enum 中它会抛出异常。如果用户输入小写的 "shipped" 或拼写错误怎么办?如何正确且安全地将字符串转换为 enum,同时考虑可能的输入错误?最好有代码示例。
谢