Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
4 / 4 / 3
Регистрация: 04.01.2016
Сообщений: 99
1

Сортировка массива объектов класса по свойству объекта

03.05.2017, 21:08. Просмотров 3124. Ответов 4
Метки нет (Все метки)

есть класс Order
в нём есть свойство string Client
есть массив Order[] orders
как отсортировать элементы массива по свойству Client?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class SortByName : IComparer<Order>
    {
        public int Compare(Order o1, Order o2)
        {
            if (o1.GetClient() == o2.GetClient())
            {
                return 1;
            }
            else if (o1.GetClient() != o2.GetClient())
            {
                return -1;
            }
 
            return 0;
        }
    }
я пытаюсь использовать этот класс для сортировки. У меня ничего не получается. Если делается другим способом, то прошу подсказать каким. Если делается этим способом, то, пожалуйста, разъясните мне по полочкам... я ничего не понимаю. Знаю что всё неправильно.

Добавлено через 7 минут
прошу прощения, хотел отредактировать тему, по итогу создал новую...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2017, 21:08
Ответы с готовыми решениями:

Сортировка массива объектов класса по свойству объекта
public class SortByName : IComparer&lt;Order&gt; { public int Compare(Order o1, Order o2) ...

Сортировка массива объектов по свойству объекта
Задача: отсортировать массив объектов по свойству объекта const PostApi = { posts: } ...

Сортировка массива объектов класса
Добрый день, не могли бы подсказать как сортировать массив объектов по полю Number, учитывая что...

Сортировка массива объектов класса
Пишу программу в которой есть массив объектов и методы которые его сортируют, но после сортировки...

4
2445 / 1776 / 922
Регистрация: 14.08.2016
Сообщений: 6,137
03.05.2017, 21:20 2
для сортировки нужно сравнивать так, если 1е больше(или должно стоять после 2го), то возвращаем 1, если меньше(перед вторым)возвращаем -1, если равны то 0
1
4 / 4 / 3
Регистрация: 04.01.2016
Сообщений: 99
03.05.2017, 22:31  [ТС] 3
с этим я приблизительно разобрался. а как всё работает?
почему всё через интерфейс. каким образом этот класс реализовывает этот интерфейс.
куда возвращаются выходные данные?
0
Эксперт .NETАвтор FAQ
9548 / 4710 / 1685
Регистрация: 11.01.2015
Сообщений: 5,880
Записей в блоге: 34
03.05.2017, 23:40 4
Цитата Сообщение от cancoder Посмотреть сообщение
есть класс Order
в нём есть свойство string Client
есть массив Order[] orders
как отсортировать элементы массива по свойству Client?
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
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication220
{
    class Program
    {
        static void Main(string[] args)
        {
            var orders = new Order[10];
            //заполнение orders
            //...
            //сортировка
            Array.Sort(orders, new SortByName());
        }
    }
 
    public class SortByName : IComparer<Order>
    {
        public int Compare(Order o1, Order o2)
        {
            return o1.Client.CompareTo(o2.Client);
        }
    }
 
    public class Order
    {
        public string Client { get; set; }
    }
}
1
221 / 201 / 90
Регистрация: 26.10.2012
Сообщений: 589
04.05.2017, 08:02 5
В типе string уже есть компаратор по умолчанию
C#
1
2
     var clients = new []{"1", "0", "a", "e", "3"};
     Array.Sort(clients, string.CompareOrdinal);
А можно вообще все сделать через Linq
C#
1
2
     var clients = new[] { "1", "0", "a", "e", "3" };
     clients = clients.OrderBy(c => c).ToArray();
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2017, 08:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сортировка массива из объектов по 2-м полям класса
Допустим есть класс Car с полями speed (int) и model (string) и расширяющий Icomparable&lt;Car&gt;. Как...

Сортировка подсчетом для массива объектов класса
Помогите, пожалуйста, нужно отсортировать массив объектов класса Student, по одному из полей...

Сортировка массива объектов, созданных с помощью класса
Ниже приведен мой код программы описывающий &quot;телефонный справочник&quot;, в котором каждый объект описан...

как правильно обратится к унаследованному свойству объекта в массиве объектов в качестве параметра функции
всем привет подскажите решение такой ситуации попробую описать проблему:допустим есть класс ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.