我有一个枚举:
public enum EnumProductConfig
{
Color,
Fold,
Edge,
Hem,
Lift,
Tapes,
Control,
Clips,
Pull,
Val
}
枚举中上述值的顺序不是alphabatical,这对我来说完全没问题。
现在,我有一个列表,其中包含一个EnumProductConfig类型的属性。我想按照Enum中出现的顺序,根据该属性(是枚举类型)对列表进行排序。我不想按字母顺序排序。订单必须保持在我的枚举中。因此,具有值Color的所有行必须首先出现。其次是Fold等。
请告知。
答案 0 :(得分:0)
在c#中,enum
是一组数值常量。
如果未指定,则枚举的基础类型为int
:
每个枚举类型都有一个基础类型,除了char之外,它可以是任何整数类型。枚举元素的默认基础类型是int
每个枚举成员都会获得从0
到n
的值,其中n
是成员数-1:
默认情况下,第一个枚举数的值为0,每个连续枚举数的值增加1.
由于您既未指定基础类型也未指定值,因此您的枚举等同于:
public enum EnumProductConfig : int
{
Color = 0,
Fold = 1,
Edge = 2,
Hem = 3,
Lift = 4,
Tapes = 5,
Control = 6,
Clips = 7,
Pull = 8,
Val = 9
}
这意味着您只需通过EnumProductConfig
媒体资源订购:
var list = new List<MyClass>()
var sorted = list.OrderBy(c => c.ProductConfig);
答案 1 :(得分:0)
myData.OrderBy(d => (int)d.ProductConfig).ToList();
应该这样做。导入System.Linq
无论如何,枚举真的只是int
,从零开始增加1.如果你愿意,你也可以给每个值一个特定的int
值。
此外,您不应在枚举类型前加上单词enum,因为它与Microsoft命名准则不符。