Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 14
.NET 4.x

Сортировка списка пользовательского класса

24.12.2012, 15:42. Показов 1720. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Есть класс SomeClass, есть список этого класса. В классе есть 3 поля (имя,вес,рост). На форме для каждого поля есть отдельный листБокс ( общий datasource).Есть кнопка сортировать. Как написать сортировку, что бы после нажатия кнопки в листБоксах выдался сортированный список по полю рост?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.12.2012, 15:42
Ответы с готовыми решениями:

Сделать выборку из списка пользовательского класса
Необходимо сделать выборку из списка пользовательского класса: Пример класса: class People { /// Фамилия public string...

Вызов метода пользовательского класса
public class block { Rectangle Block; public void Texture(object sender, PaintEventArgs e) ...

Перегрузить оператор = для пользовательского класса.
Есть код класа: /// <summary> /// Provide work with complex numbers. /// </summary> public class Complex { ...

7
28 / 28 / 5
Регистрация: 07.09.2012
Сообщений: 119
24.12.2012, 18:07
C#
1
arr = arr.OrderBy<SomeClass, int>(m => m.height).ToArray<SomeClass>();
или же можно реализовать в Вашем классе интерфейс IComparable, в котором определить каким именно образом буду сравниваться объекты класса и потом вызвать метод
C#
1
Array.Sort()
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
class SomeClass : IComparable<SomeClass>
    {
        public string name;
        public int weight;
        public int height;
        public SomeClass(string name, int weight, int height)
        {
            this.name = name;
            this.weight = weight;
            this.height = height;
        }
        public int CompareTo(SomeClass other)
        {
            return height - other.height;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            SomeClass[] arr = new SomeClass[5];
            arr[0] = new SomeClass("R", 20, 100);
            arr[1] = new SomeClass("M", 25, 90);
            arr[2] = new SomeClass("P", 12, 150);
            arr[3] = new SomeClass("G", 45, 130);
            arr[4] = new SomeClass("D", 25, 85);
 
            Array.Sort(arr);
            //arr = arr.OrderBy<SomeClass, int>(m => m.height).ToArray<SomeClass>();
            foreach (var a in arr)
                Console.WriteLine(a.name+" "+a.weight+" "+a.height);
        }
    }
0
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 14
24.12.2012, 18:12  [ТС]
Мне надо загнать значения в листБоксы. но об этом немного позже. я не создаю массив, у меня есть список , в который данные я считываю из файла
C#
1
2
3
4
5
6
7
8
 while (!sr.EndOfStream)//sr - stream reader
                    {
                        string ReadDate = sr.ReadLine();
                        MyList.Add(new SomeClass(ReadDate.Split(new char[] { ' ' })[0],
                            double.Parse(ReadDate.Split(new char[] { ' ' })[1]),
                            double.Parse(ReadDate.Split(new char[] { ' ' })[2])));
 
                    }
0
28 / 28 / 5
Регистрация: 07.09.2012
Сообщений: 119
24.12.2012, 18:23
Цитата Сообщение от PrimeJust Посмотреть сообщение
у меня есть список
особой разницы нет
C#
1
MyList = MyList.OrderBy<SomeClass, int>(m => m.height).ToList<SomeClass>();
0
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 14
24.12.2012, 18:32  [ТС]
так как мне сделать сортировку то?)
0
28 / 28 / 5
Регистрация: 07.09.2012
Сообщений: 119
24.12.2012, 18:38
напиши
C#
1
MyList = MyList.OrderBy<SomeClass, int>(m => m.height).ToList<SomeClass>();
в обработчике событий для баттона(кнопки). Далее обеспечь вывод полученных данных на форму
1
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 14
24.12.2012, 18:43  [ТС]
помогло, благодарю.
0
28 / 28 / 5
Регистрация: 07.09.2012
Сообщений: 119
24.12.2012, 18:48
изменив
C#
1
m => m.height
к примеру на
C#
1
m => m.weight
получишь сортировку по иному критерию (в данном случае по весу)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.12.2012, 18:48
Помогаю со студенческими работами здесь

Доступ к компонентам формы из пользовательского класса
Прошу показать пример как обратиться к компоненту формы, например к datagridview'у не через класс формы, например жму кнопку...

Как сравнить два List пользовательского класса
Здравствуйте! Подскажите пожалуйста, у меня есть два Lista типа моего класса TextAndWords, тип менять нельзя, а вот в этой строчке студия...

Создание пользовательского класса и выполнение некоторых операций
Вариант 1. Можете написать программу для 2-ого задания? Я в этом ничего не понимаю.

Программа, использующая массив объектов пользовательского класса
Написать код программы, в которой реализовать следующие действия: - инициализировать массив из 5 элементов, каждый элемент которого...

Создание пользовательского класса и выполнение некоторых операций
Нужно написать программу на C#. Только таким для начинающих языком, не запутанным. Условие задания: Создать пользовательский класс X,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru