Enum.GetValues(Type) / Enum.GetNames(Type)
- 지정된 열거형에서 상숫값(문자열)의 배열을 검색합니다.
Enum 정보 가져오기
public enum Colors { red = 0, green = 1, blue = 2, yellow = 3 }
public void Run()
{
Console.WriteLine("Enum에 저장된 Name 가져오기");
//Enum에 저장된 Name List로 가져오기
var nameList = Enum.GetNames(typeof(Colors));
foreach (var name in nameList)
Console.WriteLine($"{name}");
Console.WriteLine("Enum에 저장된 Value값 가져오기");
var valueList = Enum.GetValues(typeof(Colors));
foreach (var value in valueList)
Console.WriteLine($"{(int)value}에 해당하는 값은 {(Colors)value}");
}
결과
Enum에 저장된 Name 가져오기
red
green
blue
yellow
Enum에 저장된 Value값 가져오기
0에 해당하는 값은 red
1에 해당하는 값은 green
2에 해당하는 값은 blue
3에 해당하는 값은 yellow
응용! Enum Name에 따른 Value값은?
public enum Colors { red = 0, green = 1, blue = 2, yellow = 3 }
public void Run()
{
//Enum에 저장된 Name List로 가져오기
var nameList = Enum.GetNames(typeof(Colors));
foreach (var name in nameList)
{
//name에 해당하는 Enum Value를 구하면?
var val = Enum.Parse(typeof(Colors), name);
//어라 숫자가 아니네?
// => Name에 맞는 Enum 값입니다. 그래서 글자로 보이는 것입니다.
// => 그렇다면 숫자 값을 보고 싶다면, int로 캐스팅!
Console.WriteLine($"{name}에 해당하는 Enum값 : {val}, 숫자 : {(int)val}");
}
}
결과
red에 해당하는 Enum값 : red, 숫자 : 0
green에 해당하는 Enum값 : green, 숫자 : 1
blue에 해당하는 Enum값 : blue, 숫자 : 2
yellow에 해당하는 Enum값 : yellow, 숫자 : 3