Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 09.06.2019
Сообщений: 2

Класс-контейнер для структуры!

09.06.2019, 18:09. Показов 1628. Ответов 4

Студворк — интернет-сервис помощи студентам
Нужно создать класс-контейнер для структуры, в котором определить метод сортировки массива её экземпляров (доступ к ним через индексаторы), используя делегаты.

Вот структура:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 struct DateTime : IComparable<DateTime> 
    {
        int year, mnth, day, hour, min, sec;
        public DateTime(int year, int mnth, int day) : this (year, mnth, day, 0, 0, 0)
        {
            
        }
        public DateTime(int year, int mnth, int day, int hour, int min, int sec)
        {
            this.year = year;
            this.mnth = mnth;
            this.day = day;
            this.hour = hour;
            this.min = min;
            this.sec = sec;
        }
     }
Помогите пожалуйста разобраться хотя бы с тем что такое класс-контейнер и как его здесь использовать. буду очень благодарна!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.06.2019, 18:09
Ответы с готовыми решениями:

Класс- контейнер
Помогите, пожалуйста! Создать класс Liquid (жидкость), имеет поля «имя» и «плотность». определить методы переназначения и изменения...

Разработать класс-контейнер
Дали задание, звучит так: разработать набор классов-моделей. разработать класс, поля которого будут коллекциями для экземпляров моделей...

Капелька отчаяния/Структуры(?) в C#. Создать класс Date для работы с датами
Дано задание: &quot;Создать класс Date для работы с датами в формате «год.месяц.день». Дата представляется структурой (!!) с тремя нолями типа...

4
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
09.06.2019, 18:16
Цитата Сообщение от gessygay Посмотреть сообщение
что такое класс-контейнер и как его здесь использовать
Например
C#
1
class ListDateTime : List<DateTime> {}
В этой одной строчке, по-моему, реализовано всё что Вам надо.
1
0 / 0 / 0
Регистрация: 09.06.2019
Сообщений: 2
09.06.2019, 18:58  [ТС]
а где там вообще можно будет использовать делегаты?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
09.06.2019, 19:03
Цитата Сообщение от gessygay Посмотреть сообщение
а где там вообще можно будет использовать делегаты?
https://docs.microsoft.com/ru-... mework-4.8

Компаратор - это метод передаваемый через делегат.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
09.06.2019, 19:31
Вот пример правильной реализации структуры и класса-контейнера
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
    struct DateTime : IComparable<DateTime>
    {
      public  int year, mnth, day, hour, min, sec;
        public DateTime(int year, int mnth, int day) : this(year, mnth, day, 0, 0, 0)
        {
 
        }
        public DateTime(int year, int mnth, int day, int hour, int min, int sec)
        {
            this.year = year;
            this.mnth = mnth;
            this.day = day;
            this.hour = hour;
            this.min = min;
            this.sec = sec;
        }
 
        public int CompareTo(DateTime other)
        {
            int comp = year.CompareTo(other.year);
            if (comp != 0)
                return comp;
 
            comp = mnth.CompareTo(other.mnth);
            if (comp != 0)
                return comp;
 
            comp = day.CompareTo(other.day);
            if (comp != 0)
                return comp;
 
            comp = hour.CompareTo(other.hour);
            if (comp != 0)
                return comp;
 
            comp = min.CompareTo(other.min);
            if (comp != 0)
                return comp;
 
            return sec.CompareTo(other.sec);
        }
 
        public override string ToString() => $"{year}, {mnth}, {day}, {hour}, {min}, {sec}";
    }
 
    class ListDateTime : List<DateTime> { }
Пример использования
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
            ListDateTime ldt = new ListDateTime()
            {
                new DateTime(4,2,3,4,5,0),
                new DateTime(1,2,3,4,5,6),
                new DateTime(1,2,3,4,5,7),
                new DateTime(2,2,3,4,5,1),
            };
 
            Console.WriteLine(new string('*', 40));
            Console.WriteLine("Исходный список");
            Console.WriteLine(string.Join("\r\n", ldt));
 
            ldt.Sort();
            Console.WriteLine();
            Console.WriteLine(new string('*', 40));
            Console.WriteLine("Список с сортитовкой по умолчанию");
            Console.WriteLine(string.Join("\r\n", ldt));
 
            ldt.Sort(SortSec);
            Console.WriteLine();
            Console.WriteLine(new string('*', 40));
            Console.WriteLine("Список с сортитовкой по значению секунд с компаратором получаемым через делегат");
            Console.WriteLine(string.Join("\r\n", ldt));
 
            /// Метод-компаратор
            int SortSec(DateTime x, DateTime y) => x.sec.CompareTo(y.sec);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2019, 19:31
Помогаю со студенческими работами здесь

Класс-контейнер : ICollection, DRY or DIE
Есть 3 абстрактных класса, как пример Product, Dealer, Fabrica (имена сущностей максимально абстрактные) Далее реализую конкретные...

Как связать класс и контейнер Arraylist в С#?
В программе создается несколько классов, связанных между собой типом отношения - наследование, например поставщик и потребитель или автор...

Класс-контейнер для хранения различных типов
Здравствуйте, товарищи!!! Подскажите, есть ли класс-контейнер для одновременного хранения в нем различных типов? Как я понял...

Оформление свойства для чтения, класс-контейнер
Здравствуйте, помогите пожалуйста разобраться со свойством только для чтения у меня есть вот например код: def get_aver_mark(self): ...

Разработать класс Keeper, который реализует контейнер для хранения и обработки объектов
Есть задание по лабораторной работе. Нельзя использовать STL контейнеры для реализации программы. Разработать класс Keeper, который...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru