【发布时间】:2017-12-04 21:16:04
【问题描述】:
我正在尝试按中、大、小的顺序重新排列动物列表。我一直在尝试使用 IComparable.CompareTo 来做到这一点,但我不知道如何以这种特定方式订购它。我只能找到按升序或降序值排序的方法。
我的枚举:
public enum AnimalSize
{
Small = 1, Medium = 3, Large = 5,
}
我的动物课:
public class Animal : IComparable<Animal>
{
public bool IsCarnivore;
public AnimalSize Size;
public Animal(bool isCarnivore, AnimalSize size)
{
this.IsCarnivore = isCarnivore;
this.Size = size;
}
public int CompareTo(Animal other)
{
return this.Size.CompareTo(other.Size);
}
我从另一个类中调用 CompareTo,在该类中我有一个私人动物列表。
如何按中、大、小的顺序排列动物?
【问题讨论】:
-
只是一个愚蠢的问题,但是你为什么不改变
enum AnimalSize让它反映你想要的顺序呢? :Small = 3, Medium = 1, Large = 2, -
@MongZhu 这不是很反直觉吗?还有一点“锁定”。如果支持不同的排序怎么办?
-
@Fildor 听起来很合理......锁定它会是:)
-
您会接受不使用
IComparable的答案,还是这是一个固定要求?
标签: c#