Как отсортировать массив по значению перечисления - PullRequest
0 голосов
/ 01 июня 2019

У меня есть массив, и один из его элементов использует enum. Я хочу отсортировать массив по перечислению.

public enum EnumList
    {
        Spring,
        Summer,
        Fall,
        Winter,
        Unknown
    };

Мой массив выглядит так:

 Class1[] arr = new class1[7];

        arr[0] = new class1(101, "Some string", Class1.EnumList.Spring, 100, DateTime.Parse("10/13/2008"));
 .
 .
 array continues..

Как отсортировать по значению enum?

Ответы [ 2 ]

2 голосов
/ 01 июня 2019

Вы можете использовать IEnumerable.OrderBy .

Если вы сортируете по enum-значению, он будет искать базовый тип (обычно int) и сортировать по нему. Это означает, что лучшее решение будет просто так:
arr.OrderBy(c => c.TheEnumProperty);

Этот метод вернет отсортированный IEnumerable, который можно преобразовать обратно в массив с помощью IEnumerable.ToArray .

0 голосов
/ 01 июня 2019

Что-то вроде

var sortedByEnum = arr.GroupBy(x => x.enum).OrderBy(group => group);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...