Jav*_*ene 0 c# python data-structures
我在Python中有元组元组的数据.例如:
STATES = (
(0, 'NO RUN ALLOWED'),
(1, 'STOPPED'),
(2, 'READY FOR RESTART'),
(3, 'END NEXT GAME'),
(4, 'RUNNING'),
)
Run Code Online (Sandbox Code Playgroud)
我知道Python中的元组访问是O(1),我想在C#中获得这样的东西.我已经在字典中思考了,但我也认为它在性能方面可能有害.任何的想法?
小智 5
如果您担心应用程序状态,最好使用一个enum用于此目的.
public enum States
{
NotSet, // Good design to consider 0 as an error condition!
NoRunAllowed,
Stopped,
ReadyForRestart,
EndNextGame,
Running
}
Run Code Online (Sandbox Code Playgroud)
由于枚举默认情况下初始化为0,因此建议将其视为无效状态.此外,当Enum用于标志时,当要测试的值为0时,Enum.HasFlag总是返回true(请参阅FlagsAttribute).
使用DescriptionAttribute将人类可读的名称应用于各个枚举选项以在UI中显示也是很常见的.