c# - : Dictionary<string, object> 或 Dictionary<enum,object> 哪个更快/更有效?

标签 c# string dictionary enums

enum 类型用作字典键时是否比 string 类型更快/更有效?

IDictionary<string,object> or IDictionary<enum,object>

事实上,哪种数据类型最适合作为字典键,为什么?

请考虑以下事项:注意:为简单起见,只有 5 个属性

struct MyKeys
{
   public string Incomplete = "IN"; 
   public string Submitted = "SU"; 
   public string Processing="PR"; 
   public string Completed = "CO"; 
   public string Closed = "CL";   
}

enum MyKeys
{
   Incomplete, 
   Submitted, 
   Processing, 
   Completed, 
   Closed
}

如果用作字典中的键,以上哪个会更好!

最佳答案

当然是 enum版本更好(当然,当两者都适用且有意义时)。不仅仅是为了性能(它可能更好也可能更差,请参阅 Rashack 的非常好的评论)因为它检查了编译时间并产生了更清晰的代码。

您可以使用 Dictionary<int, object> 来规避比较器问题和类型转换enum int 的键s 或指定自定义比较器。

关于c# - : Dictionary<string, object> 或 Dictionary<enum,object> 哪个更快/更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/820200/

相关文章:

c# - .NET 线程 - 快速提问

objective-c - 在 Cocoa Touch 中从字符串中删除空格的最佳方法是什么?

c++ - 将字符串转换为 double - 精度丢失

python - (重新)在 Django View 中使用字典

c# - Haskell 中 map 函数的 C# 等价物是什么

c# - 从具有相同列表子项的列表中查找最大 ID

c# - 在 .NET 4 中编译 .NET 代码?

Swift 将字符串转换为函数名 (#selector)

c# - 具有两个键和一个值的 .NET 字典

swift - 从 Swift 中的函数中的字典返回值