etc./StackOverFlow

C#에서 모든 열거형 값을 반복하는 방법은 무엇입니까? [복제하다]

청렴결백한 만능 재주꾼 2022. 1. 22. 07:11
반응형

질문자 :divinci


이 질문에는 이미 답이 있습니다.
C#에서 열거형을 어떻게 열거합니까? 26개 답변

 public enum Foos { A, B, C }

Foos 의 가능한 값을 반복하는 방법이 있습니까?

원래?

 foreach(Foo in Foos)


예 당신은 사용할 수 GetValue‍‍‍s 방법 :

 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>();

JaredPar

foreach(Foos foo in Enum.GetValues(typeof(Foos)))

SLaks

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


Inisheer

foreach (Foos foo in Enum.GetValues(typeof(Foos))) { ... }

adrianbanks

업데이트됨
언젠가는 예전 답변으로 돌아가게 하는 댓글을 보고 지금은 다르게 할 것이라고 생각합니다. 요즘 나는 다음과 같이 쓸 것이다.

 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>(); }

Neil Barnwell

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 }

dbones

 Enum.GetValues(typeof(Foos))

Vasu Balakrishnan

예. System.Enum 클래스 GetValues() 메서드를 사용합니다.


Pablo Santa Cruz

출처 : http:www.stackoverflow.com/questions/972307/how-to-loop-through-all-enum-values-in-c

반응형