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

Сортировка объектов

16.03.2021, 17:32. Показов 671. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня. Нужен совет, как можно десерелизуемые данные из json'а отсортировать? В моем случае по цене.
Вот такой json написал
Кликните здесь для просмотра всего текста
JSON
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
{
    "library":[
        {
            "id": "programming book",
            "books":[
                {
                    "title": "C# для чайников",
                    "autor": "Мюллер Д. П.",
                    "discription": "Даже если вы никогда не имели дела с программированием...",
                    "details":
                    {
                        "price": 100,
                        "page": 1000
                    }
                },
                {
                    "title": "C# для профессионалов.",
                    "autor": "Д. Скит",
                    "discription": "«C# для профессионалов: тонкости программирования»...",
                    "details":
                    {
                        "price": 88,
                        "page": 995
                    }
                }
            ]
        },
        {
            "id": "classic book",
                "books":[
                {
                    "title": "Граф Монте-Кристо",
                    "autor": "Александр Дюма",
                    "discription": "Блистательный Граф Монте-Кристо...",
                    "details":
                    {
                        "price": 250,
                        "page": 1550
                    }
                }
            ]
        }
    ]
}

к ниму класс в проекте на C#
Кликните здесь для просмотра всего текста
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
    public class Details
    {
        public int price { get; set; }
        public int page { get; set; }
    }
 
    public class Book
    {
        public string title { get; set; }
        public string autor { get; set; }
        public string discription { get; set; }
        public Details details { get; set; }
    }
 
    public class Library
    {
        public string id { get; set; }
        public List<Book> books { get; set; }
    }
 
    public class Root
    {
        public List<Library> library { get; set; }
    }

само приложение
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var books = JsonConvert.DeserializeObject<Root>(File.ReadAllText("Books.json"));
            var sb_book = new StringBuilder();
            sb_book.Append(String.Format("{0,-30} {1,-30} {2, -30}\n\n", "Title", "Autor", "Price"));
 
            for (int i = 0; i < books.library.Count; i++)
            {
                for (int j = 0; j < books.library[i].books.Count; j++)
                {
                    sb_book.Append(String.Format("{0,-30} {1,-30} {2, -30}\n",
                        books.library[i].books[j].title,
                        books.library[i].books[j].autor,
                        books.library[i].books[j].details.price));
                }
            }
 
            Console.WriteLine(sb_book);

на выходе получаю
Code
1
2
3
4
5
Title                          Autor                          Price
 
C# для чайников                Мюллер Д. П.                   100
C# для профессионалов.         Д. Скит                        88
Граф Монте-Кристо              Александр Дюма                 250
После сортировки должен получиться такой результат
Code
1
2
3
4
5
Title                          Autor                          Price
 
C# для профессионалов.         Д. Скит                        88
C# для чайников                Мюллер Д. П.                   100
Граф Монте-Кристо              Александр Дюма                 250
Хотел прикрутить такую сортировку но что то пошло не так)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
            #region Cортировка
            int[] nums = new int[7] { 9, 5, 1, 4, 7, 3, 5 };
            int temp;
            for (int i = 0; i < nums.Length - 1; i++)
            {
                for (int j = i + 1; j < nums.Length; j++)
                {
                    if (nums[i] > nums[j])
                    {
                        temp = nums[i];
                        nums[i] = nums[j];
                        nums[j] = temp;
                    }
                }
            }
            for (int i = 0; i < nums.Length; i++)
            {
                Console.WriteLine(nums[i]);
            }
            #endregion
Подскажите как можно реализовать такое? или напутствие - куда копать)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.03.2021, 17:32
Ответы с готовыми решениями:

Сортировка объектов
Есть перечень инициализированных через конструктор объектов различных классов. Все классы являются наследниками и наследниками наследников...

Сортировка листа объектов
У меня есть исходный список объектов по три поля в каждом, мне нужно отсортировать его последовательно по двум полям. Как это сделать,...

Сортировка архитектурных объектов
мне нужно создать класс для архитектурных объектов сделать сортировку using System; namespace Question2440094 { public...

4
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
16.03.2021, 17:37
hikkathon, сортировка по цене?
0
fly
 Аватар для I can
4953 / 4637 / 844
Регистрация: 13.04.2015
Сообщений: 9,834
16.03.2021, 17:37
Цитата Сообщение от hikkathon Посмотреть сообщение
но что то пошло не так
А что это ты пытался сделать такой сортировкой?
0
1 / 1 / 0
Регистрация: 14.10.2019
Сообщений: 54
16.03.2021, 18:03  [ТС]
Цитата Сообщение от ProgItEasy Посмотреть сообщение
hikkathon, сортировка по цене?
Да, хотел сортировку по цене сделать. А сортировка которую я прикрепил это то что пришло первое на ум, но там сортируется одномерный массив.
0
1 / 1 / 0
Регистрация: 14.10.2019
Сообщений: 54
17.03.2021, 14:40  [ТС]
Не знаю правильно я сделал или нет, но сортирует)
я создал новый класс с данными которые я буду сортировать
C#
1
2
3
4
5
    public class DetailsBook
    {
        public int price { get; set; }
        public int page { get; set; }
    }
Создал массив объектов где я буду всё это хранить
C#
1
 DetailsBook[] detailsBook= new DetailsBook[3];
добавляю их в массив
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var books = JsonConvert.DeserializeObject<Root>(File.ReadAllText("Books.json"));
            var sb_book = new StringBuilder();
            sb_book.Append(String.Format("{0,-30} {1,-30} {2, -30}\n\n", "Title", "Autor", "Price"));
            int counter = 0;
            for (int i = 0; i < books.library.Count; i++)
            {
                for (int j = 0; j < books.library[i].books.Count; j++)
                {
                    sb_book.Append(String.Format("{0,-30} {1,-30} {2, -30}\n",
                        books.library[i].books[j].title,
                        books.library[i].books[j].autor,
                        books.library[i].books[j].details.price));
                        detailsBook[counter] = new detailsBook{ price = books.library[i].books[j].price , page = books.library[i].books[j].page };
                    counter++;
                }
            }
 
            Console.WriteLine(sb_book);
а потом все это сортирую
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
DetailsBook temp;
            for (int i = 0; i < detailsBook.Length - 1; i++)
            {
                for (int j = i + 1; j < detailsBook.Length; j++)
                {
                    if (detailsBook[i].price > detailsBook[j].price )
                    {
                        temp = detailsBook[i];
                        detailsBook[i] = detailsBook[j];
                        detailsBook[j] = temp;
                    }
                }
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.03.2021, 14:40
Помогаю со студенческими работами здесь

Сортировка объектов по дате
Здравствуйте. Есть объекты, у которых есть свойство DateTime. Создается массив из этих объектов (произвольной длинны, обычно до 100), нужно...

Сортировка объектов по координатам
Есть n количество объектов неизвестно в каком порядке лежащих в двумерной плоскости в виде списка. Задача - упорядочить эти объекты по...

List<T> сортировка объектов. Возможно ли?
Как правильно произвести сортировки Листа. Вот код ,который я намудрил, но он не комплируеться :( темы сортировки читал, там о такой...

Сортировка массива объектов вручную
Нужно отстортировать массив объектов по полю volumeRAM. Я пытался сортировать как обычный массив, но получилось, что переставляются только...

Сортировка коллекции объектов обобщенного класса
Доброго времени суток) Столкнулся с такой проблемой: не получается отсортировать коллекцию. Необходимо, чтобы коллекция объектов...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
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
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru