[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.
В этой статье, мы разберем самые популярные способы перечисления enum в программах на языке C#.
В проекте объявлено следующее перечисление:
1 2 3 4 5 6 |
public enum Position { Manager = 1, Programmer, Designer } |
Для вывода всех констант перечисления, используется метод Enum.GetValues(), пример:
1 2 3 4 |
foreach (Position position in Enum.GetValues(typeof(Position))) { } |
Так же, можно воспользоваться методом расширения, как показано в примере ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
public enum Position { Manager = 1, Programmer, Designer } class Programm { static void Main() { Position position = Position.Manager; foreach (Position item in position.GetAllItems<Position>()) { Console.WriteLine(item); } } } public static class Extensions { public static IEnumerable<T> GetAllItems<T>(this Enum value) { foreach (object item in Enum.GetValues(typeof(T))) { yield return (T)item; } } } |
Если необходимо получить коллекцию перечислений, можно воспользоваться методом расширения Cast, как показано в примере:
1 2 3 4 5 6 7 8 9 |
public enum Position { Manager = 1, Programmer, Designer } class Programm { static void Main() { var positions = Enum.GetValues(typeof(Position)).Cast<Position>(); } } |
Начиная с .Net 5 версии, если необходимо получить массив констант перечисления, можно воспользоваться методом GetNames, как показано в примере:
1 2 3 4 5 6 7 8 9 |
public enum Position { Manager = 1, Programmer, Designer } class Programm { static void Main() { string[] positions = Enum.GetNames(typeof(Position)); } } |
Тоже самое касается метода GetValues:
1 2 3 4 5 6 7 8 9 |
public enum Position { Manager = 1, Programmer, Designer } class Programm { static void Main() { Array positions = Enum.GetValues(typeof(Position)); } } |