示例#1
0
        static void Main(string[] args)
        {
            Singer[] singers = new Singer[5] {
                new Singer("아이유", 28, 8),
                new Singer("자우림", 40, 5),
                new Singer("거미", 35, 5),
                new Singer("이승철", 50, 15),
                new Singer("태진아", 65, 5)
            };

            foreach (Singer sing in singers)
            {
                Console.WriteLine(sing.ToString());
            }

            Console.WriteLine("======================================");
            Console.WriteLine();

            Array.Sort(singers); //나이로 정렬
            foreach (Singer sing in singers)
            {
                Console.WriteLine(sing.ToString());
            }
            Console.WriteLine("======================================");
            Console.WriteLine();

            SingerNameComparer nameComparer = new SingerNameComparer();

            Array.Sort(singers, nameComparer);
            foreach (Singer sing in singers)
            {
                Console.WriteLine(sing.ToString());
            }
        }
示例#2
0
        public int CompareTo(object obj)          //IComparable 인ㅌ페이스 구현 하면 나오는 CompareTo 메서드
        {
            #region 나이 기준
            //나이가 크면 1, 나이가 작으면 -1, 나이가 같으면 0
            Singer sing = obj as Singer;

            if (sing == null)
            {
                return(0);
            }
            if (this.Age > sing.Age)
            {
                //return 1; // 오름차순
                return(-1);  // 내림차순 1이면 바꾸고 -1이면 안바꾸고
            }
            else if (this.Age < this.Age)
            {
                //return -1; //오름차순
                return(1);  //내림차순
            }
            else
            {
                return(0);
            }
            #endregion
        }
示例#3
0
        public int CompareTo(object obj)
        {
            //나이가 크면 1, 작으면 -1, 같으면 0
            Singer sing = obj as Singer;

            if (this.Age > sing.Age)
            {
                return(-1);
            }
            else if (this.Age < sing.Age)
            {
                return(1);
            }
            else
            {
                return(0);
            }
        }
示例#4
0
        public int CompareTo(object obj)// IComparable
        {
            //나이가 크면 1 나이가 적으면 -1 나이가 같으면 0
            Singer sing = obj as Singer;

            if (this.Age > sing.Age)
            {
                return(1);                     //역순 -1
            }
            else if (this.Age < sing.Age)
            {
                return(-1);                          //역순 1
            }
            else
            {
                return(0);
            }
        }
示例#5
0
        public int Compare(object x, object y) //문자열은 크다작다가 없기 때문에.
        {
            //이름이 크면 1, 작으면 -1, 같으면 0
            Singer first  = x as Singer;
            Singer second = y as Singer;

            if (first.Name.CompareTo(second.Name) == 1)
            {
                return(1);
            }
            else if (first.Name.CompareTo(second.Name) == -1)
            {
                return(-1);
            }
            else
            {
                return(0);
            }
        }
示例#6
0
        public int Compare(object x, object y) //IComparer
        {
            //이름가 크면 1 이름가 적으면 -1 이름가 같으면 0
            Singer first  = x as Singer;
            Singer second = y as Singer;

            if (first.Name.CompareTo(second.Name) == 1)
            {
                return(1);                                      //역순 -1
            }
            else if (first.Name.CompareTo(second.Name) == -1)
            {
                return(-1);                                            //역순 1
            }
            else
            {
                return(0);
            }
        }
示例#7
0
        public int Compare(object x, object y)
        {
            //이름이 크면 1, 이름이 작으면 -1, 이름이 같으면 0
            Singer first  = x as Singer;
            Singer secend = y as Singer;

            if (first.Name.CompareTo(secend.Name) == 1)
            {
                return(1);
            }
            else if (first.Name.CompareTo(secend.Name) == -1)
            {
                return(-1);
            }
            else
            {
                return(0);
            }
        }
示例#8
0
        public int Compare(object x, object y) // Compare는 인자가 두개
        {
            //나이가 크면 1, 나이가 작으면 -1, 나이가 같으면 0
            Singer first  = x as Singer;
            Singer second = y as Singer;

            if (first.Name.CompareTo(second.Name) == 1)
            {
                return(1); // 오름차순
            }
            //return -1;  // 내림차순 1이면 바꾸고 -1이면 안바꾸고
            else if (first.Name.CompareTo(second.Name) == -1)
            {
                return(-1); //오름차순
            }
            //return 1;  //내림차순
            else
            {
                return(0);
            }
        }
示例#9
0
        public int CompareTo(object obj)
        {
            Singer sing = obj as Singer;

            if (sing == null)
            {
                return(0);
            }

            if (this.Age > sing.Age)
            {
                return(-1);
            }
            else if (this.Age < sing.Age)
            {
                return(1);
            }
            else
            {
                return(0);
            }
        }
示例#10
0
        static void Main(string[] args)
        {
            Singer[] singers = new Singer[5] {
                new Singer("아이유", 28, 8),
                new Singer("자우림", 40, 5),
                new Singer("거미", 35, 5),
                new Singer("이승철", 50, 15),
                new Singer("태진아", 65, 5)
            };
            while (true)
            {
                Console.Write("1. 목록보기  2. 나이 오름차순정렬  3. 나이 내림차순정렬  4. 이름 오름차순정렬  5. 나이 내림차순정렬 ");
                int s = Convert.ToInt32(Console.ReadLine());
                SingerNameComparer nameComparer = new SingerNameComparer();
                switch (s)
                {
                case 1:

                    Console.WriteLine();
                    for (int a = 0; a < singers.Length; a++)
                    {
                        Console.WriteLine(singers[a].ToString());
                    }
                    Console.WriteLine("======================================"); // 이름
                    Console.WriteLine();
                    break;                                                       // 목록출력

                case 2:
                    //foreach (Singer sing in singers)
                    //{
                    //    Console.WriteLine(sing.ToString());
                    //}

                    Console.WriteLine();
                    object[] singer1 = (object[])singers.Clone();
                    Array.Sort(singer1);

                    foreach (Singer sing in singer1)
                    {
                        Console.WriteLine(sing.ToString());
                    }

                    Console.WriteLine("======================================");     // 이름
                    Console.WriteLine();
                    break;

                case 3:
                    //foreach (Singer sing in singers)
                    //{
                    //    Console.WriteLine(sing.ToString());
                    //}

                    Console.WriteLine();
                    Array.Sort(singers, nameComparer);     // 이름으로 정렬

                    foreach (Singer sing in singers)
                    {
                        Console.WriteLine(sing.ToString());
                    }

                    Console.WriteLine("======================================");     // 이름
                    Console.WriteLine();

                    break;

                case 4:
                    //foreach (Singer sing in singers)
                    //{
                    //    Console.WriteLine(sing.ToString());
                    //}
                    Console.WriteLine();

                    Array.Sort(singers);

                    foreach (Singer sing in singers)
                    {
                        Console.WriteLine(sing.ToString());
                    }

                    Console.WriteLine("======================================");     // 나이
                    Console.WriteLine();
                    break;

                case 5:
                    //foreach (Singer sing in singers)
                    //{
                    //    Console.WriteLine(sing.ToString());
                    //}

                    Console.WriteLine();

                    Array.Sort(singers, nameComparer);     // 이름으로 정렬

                    foreach (Singer sing in singers)
                    {
                        Console.WriteLine(sing.ToString());
                    }
                    Console.WriteLine("======================================");     // 이름
                    Console.WriteLine();
                    break;
                }
            }
        }