Cześć,
Mam pole type enum:
public enum Direction
{North = -1,South = 1,East = -2,West = 2,Northeast = -3,Southwest = 3,
Southeast = -4,Northwest = 4,Up = -5,Down = 5,In = -6,Out = 6,
}
i słownik, który wykorzystuje je jako klucz.
Należy go tak posortować tak, aby kolejność w nim była jak poniżej:
North, Northest, East, Southeast, ... ,Up, Down, In, Out.
W rozwiązaniu użyto:
OrderBy(d=>(int)d.Key).
OrderBy(d=>Math.Abs((int)d.Key))
Wynikiem pierwszego sortowania jest: in, up, se, ne, e, n, s, w, sw, nw, down, out (to jest jasne).
Dlaczego po drugim sortowaniu jest: -1, -3, -2, -4, 1, 3, 2, 4, -5, 5, -6, 6? (wiem czym jest moduł)