ArrayList отсортировать по одному из полей - C#
Формулировка задачи:
как мне отсортировать Список journal по именам по алфавиту?
как мне отсортировать Список journal по именам по алфавиту?
P.S. Все фамилии , кроме Сотникова, подчеркнуло красным цветом(не в ВС , а на сайте), обрадую парня =)))
namespace ClassJournal { class Program { static void Main(string[] args) { string[] spisAbityr = new string[] { "Мухин", "Крылов", "Юля", "Дыкина", "Росина", "Левчик", "Сотников" }; Journal journ = new Journal(); for (int i = 0; i < spisAbityr.Length; i++) journ[i] = new Student(spisAbityr[i], i + 1); // заполнение списка foreach (Student st in journ) Console.WriteLine(st.Number +". "+st.Name); // Вывод списка Console.ReadKey(); Console.WriteLine(); foreach (Student st in journ) Console.WriteLine(st.Number + ". " + st.Name); Console.ReadKey(); } } class Student//....................................................... класс Студент { int number; string name; public int Number { get { return number;} set { if (value > 0 && value < 31) number = value; } } public string Name { get { return name; } set { if (value.Length > 0 && value.Length < 51) name = value; } } public Student(string name, int number) { this.name = name; this.number = number; } } class Journal : IComparable//........................................Класс Журнал { ArrayList journal = new ArrayList(); public Student this[int i] { get { return (Student)journal[i]; } set { if (i > -1 && (value is Student)) journal.Add(value); } } public int Length { get { return journal.Count; } } public IEnumerator GetEnumerator() { foreach (object o in journal) yield return o; } public int CompareTo(object obj) // Думаю надо его переопределить, но не знаю как.. { return 0; } } }
Решение задачи: «ArrayList отсортировать по одному из полей»
textual
Листинг программы
class Program { static void Main(string[] args) { string[] spisAbityr = new string[] { "Мухин", "Крылов", "Юля", "Дыкина", "Росина", "Левчик", "Сотников" }; Journal journ = new Journal(); for (int i = 0; i < spisAbityr.Length; i++) journ[i] = new Student(spisAbityr[i], i + 1); // заполнение списка journ.SortByName(); foreach (Student st in journ) Console.WriteLine(st.Number + ". " + st.Name); // Вывод списка Console.ReadKey(); } } class Student : IComparable //....................................................... класс Студент { int number; string name; public int Number { get { return number; } set { if (value > 0 && value < 31) number = value; } } public string Name { get { return name; } set { if (value.Length > 0 && value.Length < 51) name = value; } } public Student(string name, int number) { this.name = name; this.number = number; } public int CompareTo(object obj) { if (obj == null) throw new ArgumentNullException(); Student other = obj as Student; if (other != null) return this.Name.CompareTo(other.Name); else throw new ArgumentException("Object is not a Student"); } } class Journal : IComparable//........................................Класс Журнал { ArrayList journal = new ArrayList(); public void SortByName() { if (journal == null || journal.Count == 0) return; journal.Sort(); } public Student this[int i] { get { return (Student)journal[i]; } set { if (i > -1 && (value is Student)) journal.Add(value); } } public int Length { get { return journal.Count; } } public IEnumerator GetEnumerator() { foreach (object o in journal) yield return o; } public int CompareTo(object obj) { return 0; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д