[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на 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)); } } |