为什么Enum.GetValues比迭代更好?

时间:2015-04-20 12:03:50

标签: c# enums enumeration

我正在阅读this回答

  

顺便说一句,递增值不是枚举的好方法   枚举的值。你应该这样做。

     

我会改用Enum.GetValues(typeof(Suit))

为什么呢? GetValues如何比迭代更好?

2 个答案:

答案 0 :(得分:2)

看起来你误解了那里的背景。

您所指的答案的海报建议使用GetNames来迭代枚举的名称。但他表示,当涉及枚举GetValues时,优于递增。

所以一个人并不比另一个好,他们很好地服务于不同的目的,答案的作者概述了这一点。

答案 1 :(得分:0)

正如@ knittl所说:

  

因为你的枚举中可以有“洞”。考虑 枚举E {A = 1,B =   2,C = 4} 。递增将产生 A,B,3,C 枚举所有   值将产生 A,B,C

感谢@Andrei指出:

  可以使用任何值定义

枚举。即使使用chars。所以   递增可能会给你很多在枚举中没有的东西。   GetValues保证只返回相关值