質問: c#で列挙型を列挙するにはどうすればよいですか。 どのようにしてc#でenumを列挙できますか?例えば。次のコードはコンパイルされません。public enum suit { spades, hearts, clubs, diamonds } public void enumerateallsuitsdemomethod() { foreach (suit suit in suit) { dosomething(suit); } } そして、次のコンパイル時エラーを出します。 「スーツ」は「タイプ」ですが、「変数」のように使用されます。 2番目のキーワードであるsuitキーワードは失敗します。
回答: foreach (suit suit in enum.getvalues(typeof(suit))) { } 私はこれがひどく遅いという曖昧な噂を聞いた。誰でも知ってる? - オリオン・エドワーズ2008年10月15日1:31 7 配列をキャッシュすることでかなり速くなると思います。毎回(リフレクションを通じて)新しい配列を取得しているようです。むしろ:array enums = enum.getvalues(typeof(suit)); foreach (suit suitenum in enums) { dosomething(suitenum); } それは少なくとももう少し速いですね。