C# 將字串轉換為列舉型別
Minahil Noor
2023年1月30日
2020年6月9日
-
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# 中將字串轉換為位元組陣列