이 질문에는 이미 답이 있습니다.
C#에서 열거형을 어떻게 열거합니까? 26개 답변
public enum Foos { A, B, C }
Foos
의 가능한 값을 반복하는 방법이 있습니까?
원래?
foreach(Foo in Foos)
질문자 :divinci
이 질문에는 이미 답이 있습니다.
C#에서 열거형을 어떻게 열거합니까? 26개 답변
public enum Foos { A, B, C }
Foos
의 가능한 값을 반복하는 방법이 있습니까?
원래?
foreach(Foo in Foos)
예 당신은 사용할 수 GetValues
방법 :
var values = Enum.GetValues(typeof(Foos));
또는 입력된 버전:
var values = Enum.GetValues(typeof(Foos)).Cast<Foos>();
나는 오래전에 그러한 경우를 위해 내 개인 라이브러리에 도우미 기능을 추가했습니다.
public static class EnumUtil { public static IEnumerable<T> GetValues<T>() { return Enum.GetValues(typeof(T)).Cast<T>(); } }
용법:
var values = EnumUtil.GetValues<Foos>();
foreach(Foos foo in Enum.GetValues(typeof(Foos)))
foreach (EMyEnum val in Enum.GetValues(typeof(EMyEnum))) { Console.WriteLine(val); }
Jon Skeet의 크레딧: http://bytes.com/groups/net-c/266447-how-loop-each-items-enum
foreach (Foos foo in Enum.GetValues(typeof(Foos))) { ... }
업데이트됨
언젠가는 예전 답변으로 돌아가게 하는 댓글을 보고 지금은 다르게 할 것이라고 생각합니다. 요즘 나는 다음과 같이 쓸 것이다.
private static IEnumerable<T> GetEnumValues<T>() { // Can't use type constraints on value types, so have to do check like this if (typeof(T).BaseType != typeof(Enum)) { throw new ArgumentException("T must be of type System.Enum"); } return Enum.GetValues(typeof(T)).Cast<T>(); }
static void Main(string[] args) { foreach (int value in Enum.GetValues(typeof(DaysOfWeek))) { Console.WriteLine(((DaysOfWeek)value).ToString()); } foreach (string value in Enum.GetNames(typeof(DaysOfWeek))) { Console.WriteLine(value); } Console.ReadLine(); } public enum DaysOfWeek { monday, tuesday, wednesday }
Enum.GetValues(typeof(Foos))
예. System.Enum
클래스 GetValues()
메서드를 사용합니다.
출처 : http:www.stackoverflow.com/questions/972307/how-to-loop-through-all-enum-values-in-c
java.lang.UnsupportedClassVersionError 수정 방법: 지원되지 않는 major.minor 버전 (0) | 2022.01.22 |
---|---|
왜 항상 `--set-upstream`을 수행해야 합니까? (0) | 2022.01.22 |
정규식에서 변수를 어떻게 사용합니까? (0) | 2022.01.22 |
콜백 내에서 올바른 `this`에 액세스하는 방법 (0) | 2022.01.22 |
웹사이트 개발을 위해 Chrome 캐시 비활성화 (0) | 2022.01.14 |