按字母顺序排序typeof(EnumType)的有效方法是什么?排序后检索索引值Enum按字母顺序排列
枚举值的索引是非顺序的,但按字母顺序排序。 (即苹果= 5,香蕉= 2,哈密瓜= 3)
实例化临时是好的。
最终,我需要所选特定枚举值的索引代码。
我问,因为我想出了这个方法看起来不是最好的:
Array tmp = Enum.GetValues(typeof(EnumType));
string[] myenum = tmp.OfType<object>().Select(o => o.ToString()).ToArray();
Array.Sort(myenum);
int enum_code = (int)Enum.Parse(typeof(EnumType), myenum.GetValue((int)selected_index).ToString());
string final_code = enum_code.ToString());
您可以通过使用OrderBy(o => o.ToString())来简化第2行和第3行。但是,我并不是100%清楚你在这里试图达到什么目标。 – yoozer8 2013-02-15 17:43:11
由于所选索引不直接映射创建的Array tmp的索引值。 (选定的索引是基于字母顺序,而tmp创建一个数组与索引顺序,增量,我需要诉诸,然后检索使用selected_index变量.. – 2013-02-15 21:31:27