數組排序

            int [] ly={1,4,5,6,78,2,3}

Array.sotr(ly);

輸出結果:1,2,3,4,5,6,78

 

sort()方法,派生自IComparer接口。如果是泛型類數組如何排序呢?

 

public class Person

{

    public string firstName{set;get;}

    public string lastName{set;get;}

}

 

public Enum PersonType{ firstName,lastName}

 

public class PersonComparer : IComparer<Person>

{

    PersonType pt;

    public PersonComparer(PersonType p){pt=p;}

 

    public int Comparer(Person a,Person b)

    switch(pt)

    {

        case PersonType.firstName:

                    return a.firstName.CompareTo(b.firstName);

        case PersonType.lastName:

                    return a.lastName.CompareTo(b.lastName);

        default:

                    throw new Exception("Error!");

    }

}

 

用方法測試下:

Person [] pl={new Person(){firstName="g",lastName=""},

                        new Person(){firstName="s",lastName=""},

                        new Person(){firstName="d",lastName=""},

                        new Person(){firstName="v",lastName=""},

                        new Person(){firstName="c",lastName=""}

}

 

Array.sort( pl , new PersonComparer(PersonType.firstName) );

 

輸出結果:c , d ,g ,s,v

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章