经过一些速度跟踪之后,我发现了一段代码(经常被称为),它将一个枚举的值转换为另一个枚举的值,如下所示:

public Enum2 ConvertToEnum2(Enum1 enum1)
{
   switch(enum1)
   {
      case Enum1.One:
         return Enum2.One;
         break;
      case Enum1.Two:
         return Enum2.Two;
         break;
   }
}


如果我将这些转换保存在Dictionary中,然后执行以下操作,它会提高我的性能吗:

public Enum2 ConvertToEnum2(Enum1 enum1)
{
   return m_ConversionTable[enum1];
}


感谢您的意见!

最佳答案

字典肯定不会更快。

如果Enum1中的枚举是顺序的,则Enum2数组可能会更快(但这可能是边际的)。如果Enum1接近顺序,以便数组不太多余,则它可能仍然是有用的方法。

对于具有[Flags]属性的枚举,则切换可能是最好的。

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

10-12 15:49