C# 將字串轉換為列舉型別
Minahil Noor
2023年10月12日
-
C# 從字串到列舉
enum
的轉換-使用Enum.Parse()
和Enum.TryParse()
方法 -
C# 使用
Enum.Parse()
方法將字串轉換為列舉的異常處理 -
C# 使用
Enum.TryParse()
將字串轉換為列舉enum
-
C# 使用
Enum.IsDefined()
方法檢查字串值是否存在 - まとめ
在 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()
。
相關文章 - Csharp String
- C# 中將整形 Int 轉換為字串 String
- 在 C# 中的 Switch 語句中使用字串
- 如何在 C# 中把一個字串轉換為布林值
- 如何在 C# 中把一個字串轉換為浮點數
- 如何在 C# 中將字串轉換為位元組陣列