我有一个List<string>
,其中包含以下条目:
“夏天”,“春天”,“冬天”
我想编写一个.OrderBy(),根据它来命令它们:
public enum Term {
Spring = 0, Summer, Fall, Winter, All
}
因此,我希望看到的结果是:
“春天”,“夏天”,“冬天”
编辑 - 为了澄清,并非每个客户都拥有所有可用的术语,但我只想在列表的排序中保持一致。
答案 0 :(得分:5)
var q = l.OrderBy (x => Enum.Parse(typeof(Term), x));
答案 1 :(得分:3)
List<string> terms = new List<string> { "Summer", "Spring", "Winter" };
var enumNames = Enum.GetNames(typeof(Term))
.OrderBy(s=>Enum.Parse(typeof(Term),s))
.ToList();
var orderedList = terms.OrderBy(s => enumNames.IndexOf(s)).ToList();