同时对类别进行排序

时间:2017-10-14 05:25:34

标签: c#

我有一组不同类别的项目。 示例 -

     dogs - Shepherd, Sheepdog, Lapphund
     birds - owl, parrot goose
     cats - misty , tigger, kitty

我必须将它们存储在地图中,并按类别和名称以升序显示列表。 预期产出 -

   birds -
   owl
   goose
   parrot
   cats - 
   kitty
   misty
   tigger
   dogs -
   Lapphund
   Sheepdog
   Shepherd

我的代码 -

   class Animal : IComparable{
    private string name;
    public Animal(string name){
        this.name = name;
    }
    public string Name{
        get{
            return this.name;
        }
        set{
            this.name = value;
        }
    }
    public int CompareTo(object obj) {
    if (obj == null) return 1;

    Animal otherAnimal = obj as Animal;
    if (otherAnimal != null) 
        return this.name.CompareTo(otherAnimal.name);
    else
       return 1;
    }
}

但是我也想对类别进行排序,首先应该显示鸟类,然后是猫,然后是狗

1 个答案:

答案 0 :(得分:2)

要对类别进行排序,您只需使用已排序的词典

即可

创建 -

SortedDictionary<string,Animal>  = new SortedDictionary<string,Animal>();

使用Icomparable对类别的列表名称进行排序

就是这样。