在一个项目中,我有一个外部枚举(从服务引用生成)。所以我不能改变枚举值。
如何以有效的方式将这些枚举值相互比较?
这是枚举的示例
public enum Values
{
A,
B,
C,
D,
E,
F,
G,
H
}
而且我想要它们的排序顺序不一样(比如 F、H、A、C、B、...)
现在我有一个带有一些比较的扩展方法。(有另一个我想要的顺序的枚举)
public static int CompareTo(this Values x, Values y)
{
var orderedX = GetOrderedValues(x);
var orderedY = GetOrderedValues(y);
return orderedX.CompareTo(orderedY);
}
internal enum ValuesOrdered
{
F = 0,
H = 1,
C = 2,
D = 3,
B = 4,
A = 5,
E = 6,
G = 7
}
internal static ValuesOrdered GetOrderedValues(this Values x)
{
switch (x)
{
case Values.A:
{
return ValuesOrdered.A;
}
// and so on...
}
}
这可以更有效地实现吗?