Сортировка списка - C# (184771)

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

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

Имеется класс Contact
public class Contact
    {
        public string Surname { get; set; }
        public string Name { get; set; }
        public string LastName { get; set; }
        public string Number { get; set; }
 
        public override string ToString()
        {
            return $"{this.Name} : {this.Number}";
        }
 
        public string FIO()
        {
            return $"Фамилия {this.Surname} Имя {this.Name} Отчество {this.LastName}";
        }
Наследуемый от него:
public class Contacts : List<Contact>
    {
        public List<Contact> contactsprop { get; set; }
И, собственно, мне надо во втором (Contacts) классе реализовать сортировку в алфавитном порядке по результату метода FIO; Пробовал через интерфейсы, через методы расширения - не получилось, почему - хз)

Решение задачи: «Сортировка списка»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace Cont
{
    class Program
    {
        static void Main(string[] args)
        {
            Contacts conts = new Contacts();
            conts.Add(new Contact("Иванов", "Иван", "Иванович", "000232"));
            conts.Add(new Contact("Петров", "Иван", "Иванович", "000232"));
            conts.Add(new Contact("Сидоров", "Иван", "Иванович", "000232"));
            conts.Add(new Contact("Антонов", "Ашот", "Исакович", "000232"));
            conts.Add(new Contact("Иванов", "Олег", "Петрович", "000232"));
            conts.Add(new Contact("Антонов", "Ашот", "Иванович", "000232"));
            conts.Add(new Contact("Иванов", "Иван", "Антонович", "000232"));
            foreach (Contact cont in conts.GetContacts())
                Console.WriteLine(cont.FIO);
            Console.WriteLine();
            Console.WriteLine();
            conts.SortByFIO();
            foreach (Contact cont in conts.GetContacts())
                Console.WriteLine(cont.FIO);
            Console.ReadLine();
        }
 
    }
 
    public class Contact
    {
        public string Surname { get; set; }
        public string Name { get; set; }
        public string LastName { get; set; }
        public string Number { get; set; }
 
        public Contact(string surname, string name, string lastname, string number)
        {
            Surname = surname;
            Name = name;
            LastName = lastname;
            Number = number;
        }
 
        public override string ToString()
        {
            return string.Format("{0}:{1}",this.Name,this.Number);
        }
        public string FIO
        {
            get { return string.Format("{0} {1} {2}", this.Surname, this.Name, this.LastName); }
        }
    }
 
    public class Contacts
    {
        List<Contact> contactsprop;
        public Contacts()
        {
            contactsprop = new List<Contact>();
        }
 
        public void Add(Contact contact)
        {
            contactsprop.Add(contact);
        }
 
        public IEnumerable<Contact> GetContacts()
        {
            foreach (Contact contact in contactsprop)
            {
                yield return contact;
            }
        }
 
        public void SortByFIO()
        {
            contactsprop = contactsprop.OrderBy(x => x.Surname).ThenBy(y => y.Name).ThenBy(z => z.LastName).ToList();
        }
 
    }
 
}

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


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

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

8   голосов , оценка 3.875 из 5