c#之数组

自定义类来实现排序功能

利用Array的sort方法来进行排序,但是sort方法需要数组中的元素实现IComparable,就可以通过自定义这些类型的排序

接下来我们对定义的person类数组进行自定义的排序准则,实现Icomparable接口中的ComparaTo()方法,如果要比较的对象相等,改方法返回0,如果该实例应该排在参数对象的前面,该方法就返回小于0的值,如果该实例应该排在参数对象的后面,该方法就返回大于0的值

public class Person :IComparable<Person>
    {
        
        public string LastName { get; set; }
        public string FirstName { get; set; }
        public int CompareTo(Person other)
        {
            if (other == null)
            {
                throw new ArgumentNullException("Index");
            }
            int result = this.LastName.CompareTo(other.LastName);
            if (result == 0)
            {
                result = this.FirstName.CompareTo(other.FirstName);
            }
            return result;
        }
    }

定义的这段代码的意思是先根据Person的LastName来做比较,如果LastName相同即result相同的情况下再根据在根据FisrtName进行排序

Person[] persons ={
                             new Person{FirstName="Damon",LastName="dHill"},
                             new Person{FirstName="Nii",LastName="cLauda"},
                             new Person{FirstName="Ayrton",LastName="bSena"},
                             new Person{FirstName="Graham",LastName="aHill"}
                             };
            Array.Sort(persons);
            foreach (var p in persons) {
                Console.WriteLine(p.LastName);
            }
            Console.Read();

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。