我正在阅读this回答
顺便说一句,递增值不是枚举的好方法 枚举的值。你应该这样做。
我会改用
Enum.GetValues(typeof(Suit))
。
为什么呢? GetValues
如何比迭代更好?
答案 0 :(得分:2)
看起来你误解了那里的背景。
您所指的答案的海报建议使用GetNames
来迭代枚举的名称。但他表示,当涉及值枚举GetValues
时,优于递增。
所以一个人并不比另一个好,他们很好地服务于不同的目的,答案的作者概述了这一点。
答案 1 :(得分:0)
正如@ knittl所说:
因为你的枚举中可以有“洞”。考虑 枚举E {A = 1,B = 2,C = 4} 。递增将产生 A,B,3,C 枚举所有 值将产生 A,B,C
感谢@Andrei指出:
可以使用任何值定义枚举。即使使用chars。所以 递增可能会给你很多在枚举中没有的东西。 GetValues保证只返回相关值