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/