Как отсортировать список по индивидуальному заказу - PullRequest
0 голосов
/ 31 декабря 2018

Имеют некоторый объект списка приложений. Приложение имеет статус свойства и содержит значения {«Красный», «Желтый», «Синий», «Зеленый и оранжевый»)

Мое требование - сортировка списка в произвольном порядке сортировки

«Красный» должен стоять первым «Синий» Второй «Желтый» Третий «Зеленый» последний

Как реализовать сортировку в этом сценарии. Пожалуйста, помогите.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Определите новый класс с идентификатором и именем свойства цвета.Создать массив класса и упорядочить массив по Id.

class CutomSort
    {
        class Color
        {
            public int Id;
            public string Name;
        }

        static void Main(string[] args)
        {
            Color[] input = {
                                new Color{Id=4, Name="Green"},
                                new Color{Id=3, Name="Yellow"},
                                new Color{ Id=1, Name="Red"},
                                new Color{ Id = 2, Name = "Blue" }
                            };

            IEnumerable<Color> result = input.OrderBy(x => x.Id);

            foreach (Color color in result)
            {
                Console.WriteLine($"{color.Id}-{color.Name}");
            }

            Console.ReadKey();
        }
    }
0 голосов
/ 31 декабря 2018

Ну, вы можете создать список отсортированных значений, а затем отсортировать его по индексу:

var sortedValues = new List<string> {"Red", "Blue", "Yellow", "Green", "Orange"};
var result = myList.OrderBy(a => sortedValues.IndexOf(a.Status));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...