c# - 枚举和性能

标签 c# performance dictionary enums casting

我的应用程序有很多不同的查找值,这些值永远不会改变,例如美国各州。我不想将它们放入数据库表中,而是想使用枚举。

但是,我确实意识到这样做涉及到一些枚举以及从“int”和“string”到我的枚举的大量转换。

或者,我看到有人提到使用 Dictionary<> 作为查找表,但枚举实现似乎更清晰。

所以,我想问一下,保留和传递大量枚举并强制转换它们是否会影响性能,或者我应该使用性能更好的查找表方法吗?

编辑:需要转换作为 ID 存储在其他数据库表中。

最佳答案

int 转换为枚举非常便宜……它比字典查找更快。基本上它是一个空操作,只是将位复制到具有不同概念类型的位置。

将字符串解析为枚举值会稍微慢一些。

我怀疑这对你来说会是一个瓶颈,但老实说,尽管你这样做了......在不了解你在做什么的情况下,除了正常的“写最简单的,模式可读和可维护的代码,然后检查它是否表现得足够好。”

关于c# - 枚举和性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3256713/

相关文章:

c# - 获取 VS 2010 中执行查询的历史记录?

c# - C++和C#之间HRESULT的转换

c# - 为什么控制台窗口在显示我的输出后立即关闭?

C++,实例化 std::vector 时性能不佳

java - 我将数据放入 map 中并以不同的顺序获取它

javascript - 在 react 中搜索关键字列表

javascript - 设置多个文件上传的验证

ruby - Ruby 1.9 中非并发 Ruby 线程的优点?

执行存储在数据段中的 x86 指令的性能损失?

java - Map.keySet 什么时候返回 null