Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。5,929件2新人の方にenumが持つ全ての値をforeachで取得しようとしてたら、エラーが出たと質問されました。LoopThroughAllTopCities();}#endregionこのエラーが出てコンパイルできないと聞かれました。'variable'この場合Enum.GetValuesの引数はSystem.Typeなので、typeof(TopCities)を渡すべきです。Enum.GetNames(typeof(TopCities)))で都市名の取得もできますと答えました。Enum.GetValuesとEnum.GetNamesの違いは指定した値を持つ指定した列挙体にある定数の名前を取得する代わりに、定数の値の配列を取得することです。そこで思ったのですが、どのようなの場合にどちらのメソッドが推奨されるのかを聞きたいです。個の銅バッジケースバイケースのような気がしますが、値は重複する場合があるので、名前で収得して値は名前からParseで得るのがいいような気がします。票5名称だけでよいのであればEnum.GetNames、数値と名称が必要であればEnum.GetValues、各フィールドでリフレクションを行うのであればType.GetFieldsを使用べきかと思います。質問の例でEnum.GetValuesを使用するとEnum.ToStringの呼び出しコストがかかるのでEnum.GetNamesが適切です。Yokohama,}のように属性が適用されていてそれを参照したいのであればType.GetFieldsとなります。|4そもそもenumには重複した値を設定できます。名前の通りですので、後は適材適所で選択してください。|0まったく違うメソッドです。GetValues()はenumを返しGetNames()はstringを返します。あなたが必要な方を使うことをオススメします。詳しくはMSDNを調べてください。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。マネージリソースとアンマネージリソースのどちらでしょうか?2C#のenumで任意の識別子から値を呼ぶ方法を探しています。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。