我有一个名为Item的类:它包含各种字段
public class Item{
private string name;
private enume prop;
}
他们得到了并且设定了方法。
虽然enume是一个枚举:
public enum enume{
offensive
defensive
support
}
现在我得到了List<Item>
。我想根据枚举的特定顺序对列表进行排序,例如
但我也想对其他订单进行排序,例如
我确实在stackoverflow上阅读了很多主题,但我认为它们都没有得到2个或更多的排序顺序。我使用排序方法按名称订购商品:
inventar.Sort((x,y) => string.Compare(x.getName(),y.getName()));
但是我不知道如何按照不同的顺序排列枚举。
对于错误的代码格式化抱歉,我只是不明白。
我希望你能帮助我:)。
/编辑,希望它有所帮助。
答案 0 :(得分:3)
如果您为排序顺序创建字典,则可以使用它来从枚举顺序快速转换为排序顺序:
Dictionary<enume, int> sort = new Dictionary<enume, int>();
sort.Add(enume.support, 0);
sort.Add(enume.defensive, 1);
sort.Add(enume.offensive, 2);
现在只需对转换进行排序:
List<Item> result = items.OrderBy(i => sort[i.enume]).ToList();
要以不同的方式对枚举值进行排序,只需将值放在字典中,使用不同的数字:
sort.Add(enume.offensive, 0);
sort.Add(enume.support, 1);
sort.Add(enume.defensive, 2);