如何按值枚举状态排序?

时间:2015-07-30 09:19:17

标签: c# enums

我有这个foreach,我如何订购,以便我在第一个地方获得最后一项,其他人留在原地?

  foreach (Statuses val in Enum.GetValues(typeof(Statuses)))
    {
       Status.Add(new StatusModel() 
         { 
            Value = (string)val.ToString(), 
            TransKey = val.ToString() 
         });
    }

1 个答案:

答案 0 :(得分:3)

你可以使用这个肮脏的技巧:

var ordered = Status
    .OrderByDescending(s => s.TransKey == "ValueYouWantAtTheTop");

可能更有效的选择:

var toMoveToTop = Status.First(s => s.TransKey == "ValueYouWantAtTheTop");
Status.Remove(toMoveToTop);
Status.Insert(0, toMoveToTop);