Сортировка коллекций - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет хотел отсортировать коллекцию но чего то не хватает не магу понят чего именно .
using System;
using System.Collections;
 
namespace Sortirovka2
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] students = { "ivanov"
                                ,"petrov"
                                ,"maksimov"
                                ,"ramil"
                                 ,"albert"
                                 ,"almaz"
                                 ,"gudok"
                                 ,"idik"
                                 ,"vinson"
                                  };
 
            Jornal jorn = new Jornal();
 
            for (byte i = 0; i < students.Length; i++)
                jorn[i] = new student((byte)(i + 1), students[i]);
 
            for (byte i = 0; i < students.Length; i++)
                Console.WriteLine(jorn[i].Number + " "+jorn[i].Name);
 
            Array.Sort(jorn);//вот тут возникает  ошибка Argument 1: cannot convert from 'Sortirovka2.Jornal' to 'System.Array'  Sortirovka2 
           // 
)

            Console.ReadLine();
        }        
    }

    class student :IComparable
    {
        byte number;
        string name;
 
        public byte Number
        {
            get
            {
                return number;
            }
 
            set
            {
                if(value>0)
                number = value;
            }
        }
 
        public string Name
        {
            get
            {
                return name;
            }
 
            set
            {
                if(value.Length>1 && value.Length<51)
                name = value;
            }
        }
 
        public student (byte n,string na)
        {
            this.Number = n;
            this.Name = na;
        }
 
        public int CompareTo(object obj)
        {
            student s = (student)obj;
            byte leng;
 
            if (s.Name.Length > this.Name.Length)
                leng = (byte)this.Name.Length;
            else leng = (byte)s.Name.Length;
            
            for(byte i=0;i<leng;i++)
            {
                if (s.Name[i] > this.Name[i])
                    return 1;
                if (s.Name[i] < this.Name[i])
                    return -1;
                if (i==leng-1)
                    if (s.Name.Length < this.Name.Length)
                        return 1;
                    if (s.Name.Length > this.Name.Length)
                        return -1;
                    if (s.Name.Length == this.Name.Length)
                        return 0;
            }
            return 0;
        }
    }
 
    class Jornal
    {
         ArrayList jornal = new ArrayList ();
         public student this[byte i]
        {
            get { return (student)jornal[i]; }
            set
            {
                if (i > -1 && value is student)
                    jornal.Add(value);
            }
        }
    }
}

Решение задачи: «Сортировка коллекций»

textual
Листинг программы
Jornal jorn = new Jornal();
// Добавляем студента под номером 10
jorn[10] = new student(1, "aaaa");
// Пытаемся прочитать имя добавленного студента
//   но "внезапно" получаем исключение ArgumentOutOfRangeException
Console.WriteLine(jorn[10].Name);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5