如何按枚举值对数组排序

时间:2019-06-01 15:13:57

标签: c# sorting enums

我有一个数组,其元素之一使用枚举。 我想按枚举对数组进行排序。

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..

如何按枚举值排序?

2 个答案:

答案 0 :(得分:2)

您可以使用IEnumerable.OrderBy

如果您按枚举值排序,它将查看基础类型(通常为int)并以此进行排序。这意味着最好的解决方案就是这样:
arr.OrderBy(c => c.TheEnumProperty);

此方法将返回一个排序的IEnumerable,您可以使用IEnumerable.ToArray将其强制转换回数组。

答案 1 :(得分:0)

类似

var sortedByEnum = arr.GroupBy(x => x.enum).OrderBy(group => group);