Задать вопрос
@AAGR
Занимаюсь программированиям

Как отсортировать значения?

У меня есть перечисление
public enum Parties
    {
        Up,
        UpRight,
        Right,
        DownRight,
        Down,
        DownLeft,
        Left,
        UpLeft
    }

Есть метод в который я передаю перечисление
public static void HardSurface(params Patries[] Part)
{
    Parties[] num0 = Part; // От сдесь должно отрабативатся сортировка
}


Как я им пользуюсь
HardSurface(Parties.Up, Parties.Down ...);

Задача: Есть перечисление в котором все компоненты расположены не в случайном порядке. А мне надо отсортировать значение которые я передаю в метод, чтобы я мог передавать в метод в любом порядке значения, и чтобы они записывались в массив в том же порядке, что и перечисление. Непонятно?
  • Вопрос задан
  • 140 просмотров
Подписаться 2 Простой 3 комментария
Решения вопроса 2
@kttotto
пофиг на чем писать
Enum по дефолту это обычный int, т.е. Parties.Up == 0, Parties.UpRight == 1 и т.д., поэтому массив из enum сортируется тем же способом как integer. Если тебе нужен особый порядок, то задай его сам, например
public enum Parties
{
    Up = 1,
    UpRight = 0,
    Right = 2,
    DownRight = 3,
    Down = 6,
    DownLeft = 5,
    Left = 4,
    UpLeft = 7
}

Parties[] p = { Parties.Up, Parties.UpLeft, Parties.DownLeft, Parties.Right };
var result = p.OrderBy(a => (int)a).ToList();
Ответ написан
edward_freedom
@edward_freedom
Не понятно, с чем у тебя возникли проблемы. Сортируй как обычный массив, как он сортируется, я уверен были примеры в книге, которую ты читал
var sorted = num0.OrderBy(item => item);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы