В C# перечисления используются для определения набора именованных констант. По умолчанию значения перечислений являются целыми числами, но иногда вам может потребоваться передать в перечисления строковые значения. В этой статье мы рассмотрим несколько методов достижения этой цели на C#, а также приведем примеры кода. Давайте погрузимся!
Метод 1: использование Enum.Parse
public enum Colors
{
Red,
Green,
Blue
}
string colorString = "Green";
Colors color = (Colors)Enum.Parse(typeof(Colors), colorString);
Метод 2: использование Enum.TryParse
public enum Colors
{
Red,
Green,
Blue
}
string colorString = "Blue";
Colors color;
Enum.TryParse(colorString, out color);
Метод 3: использование отражения
public enum Colors
{
Red,
Green,
Blue
}
string colorString = "Red";
Colors color = (Colors)Enum.Parse(typeof(Colors), colorString);
Метод 4. Использование методов расширения
public static class EnumExtensions
{
public static T ToEnum<T>(this string value) where T : struct, Enum
{
return (T)Enum.Parse(typeof(T), value, true);
}
}
public enum Colors
{
Red,
Green,
Blue
}
string colorString = "Green";
Colors color = colorString.ToEnum<Colors>();
Метод 5: использование оператора Switch
public enum Colors
{
Red,
Green,
Blue
}
string colorString = "Blue";
Colors color;
switch (colorString.ToLower())
{
case "red":
color = Colors.Red;
break;
case "green":
color = Colors.Green;
break;
case "blue":
color = Colors.Blue;
break;
default:
throw new ArgumentException("Invalid color string");
}
В этой статье мы рассмотрели несколько методов передачи строкового значения в перечисление в C#. Мы рассмотрели такие методы, как Enum.Parse, Enum.TryParse, Reflection, методы расширения и оператор Switch. Каждый метод имеет свои преимущества и может использоваться в зависимости от ваших конкретных требований. С помощью этих методов вы можете легко преобразовать строковые значения в перечисления в своих приложениях C#.