在項目中我有一個外部枚舉(從服務引用生成)。 所以我不能改變枚舉值。比較排序的枚舉值
我該如何比較這些枚舉值與對方有效的方式?
這裏枚舉
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