在项目中我有一个外部枚举(从服务引用生成)。 所以我不能改变枚举值。比较排序的枚举值
我该如何比较这些枚举值与对方有效的方式?
这里枚举
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...
}
}
才能实现这一目标更有效?
你的方法似乎是合理的。当你无法控制源值时,有时你必须得到一个不太理想的解决方案。 – dlev 2013-05-13 08:33:05
这种扩展方法有什么作用?你怎么使用它? 'CompareTo'有什么意义,为什么你会显示一个总是返回0的简单实现? – Jon 2013-05-13 08:38:02
将尝试在编辑问题时回答您的问题。 – 2013-05-13 08:38:49