首页 > 解决方案 > 如何按枚举值对数组进行排序

问题描述

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

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

如何按枚举值排序?

标签: c#sortingenums

解决方案


您可以使用IEnumerable.OrderBy

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

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


推荐阅读