208. Enum.GetValues, Enum.GetNames

מדי פעם יש לנו Enum ואנחנו מעוניינים לעבור על כל הערכים האפשריים שלו.

יש מספר דרכים לעבור על הערכים:

  1. בתור ערכי הEnum
  2. בתור ערכים מספריים
  3. בתור ערכי המחרוזות

למשל, נניח שיש לנו את הEnum הבא:

1
2
3
4
5
6
7
8
9
10
public enum Days
{
Sunday = 1,
Monday = 2,
Tuesday = 3,
Wednesday = 4,
Thursday = 5,
Friday = 6,
Saturday = 7
}

כדי לעבור על כל ערכי הEnum נוכל להשתמש בפונקציה Enum.GetValues פונקציה זו מחזירה לנו מערך של object המכיל את כל ערכי הEnum האפשריים:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Days[] days = (Days[])Enum.GetValues(typeof(Days));
foreach (Days day in days)
{
Console.WriteLine(day);
}
//Sunday
//Monday
//Tuesday
//Wednesday
//Thursday
//Friday
//Saturday

כדי לעבור על כל ערכי הEnum בתור ערכים נומריים, נצטרך לבצע הסבה:

1
2
3
4
5
6
int[] daysValues = (int[])Enum.GetValues(typeof(Days));
foreach (int day in daysValues)
{
Console.WriteLine(day);
}

אם מאחורי הEnum מסתתר טיפוס אחר מint, נצטרך לעשות הסבה אליו.

כדי לעבור על כל השמות של הEnum נוכל להשתמש בפונקציה Enum.GetNames:

1
2
3
4
5
6
string[] daysNames = Enum.GetNames(typeof(Days));
foreach (string day in daysNames)
{
Console.WriteLine(day);
}

המשך יום ערכי טוב

שתף