본문 바로가기
C#

사용자 정의 타입 ArrayList.Sort

by 공부봇 2024. 8. 1.
반응형

사용자 정의 타입 ArrayList.Sort

 

IComparable 상속 받고 CompareTo 메서드를 구현하고 ArrayList에서 Sort를 호출하면 CompareTo 메서드를 호출하게 된다. 

 

public class Person : IComparable
    {
        public int    Age;
        public string Name;


        public Person(int age, string name) 
        {
            this.Age = age;
            this.Name = name;
        }

        public int CompareTo(object obj)
        {
            Person target = obj as Person;

            if (this.Age > target.Age)
            {
                return 1;
            }
            else if (this.Age == target.Age)
            {
                return 0;
            }

                return -1;
        }

        public override string ToString()
        {
            return string.Format("{0}{1}", this.Name, this.Age);
        }
    }
    
    
    ArrayList ar = new ArrayList();

    ar.Add(new Person(32, "Cooper"));
    ar.Add(new Person(56, "Anderson"));
    ar.Add(new Person(17, "sammy"));
    ar.Add(new Person(27, "Paul"));

    ar.Sort();

    foreach (Person p in ar)
    {
        Console.WriteLine(p);
    }
반응형