Как отсортировать лист по возрастанию c
Lists are containers used in C++ to store data in a non contiguous fashion, Normally, Arrays and Vectors are contiguous in nature, therefore the insertion and deletion operations are costlier as compared to the insertion and deletion option in Lists.
sort() function is used to sort the elements of the container by changing their positions.
Syntax :
Errors and Exceptions
1. It has a basic no exception throw guarantee.
2. Shows error when a parameter is passed.
Сортировка списка объектов в C#
В этом посте будет обсуждаться, как сортировать список объектов, используя какое-либо свойство в C#.
C# имеет встроенный Sort() метод, который выполняет на месте sorting для сортировки списка объектов. Сортировку можно выполнить с помощью Comparison<T> делегат или IComparer<T> реализация.
1. Использование Comparison<T> делегат
А делегат сравнения используется для обеспечения порядка на объектах, которые не имеют естественного порядка. Если он передается методу сортировки, он позволяет точно контролировать порядок сортировки элементов. Мы можем реализовать делегат сравнения через анонимные методы, которые позволяют передавать блоки кода в качестве параметров вместо отдельного метода.
В следующем примере сортируется список Employee объекты по их возрасту с использованием указанного Comparison<T> делегировать.
Sorting a List of objects in C#
This is a list and I am trying to figure out an efficient way to sort this list List CarList, containing 6(or any integer amount) Cars, by the Car Make Date. I was going to do Bubble sort, but will that work? Any Help?
11 Answers 11
The List<T> class makes this trivial for you, since it contains a Sort method. (It uses the QuickSort algorithm, not Bubble Sort, which is typically better anyway.) Even better, it has an overload that takes a Comparison<T> argument, which means you can pass a lambda expression and make things very simple indeed.
You could use LINQ:
EDIT: With this approach, its easy to add on more sort columns:
The best approach is to implement either IComparable or IComparable<T> , and then call List<T>.Sort() . This will do all the hard work of sorting for you.
Another option would be to use a custom comparer:
which you call like this:
Note: I didn’t compile this code so you might have to remove typo’s
Edit: modified it so the comparer compares on creationdate as requested in question.
I would just use the build in List.Sort method. It uses the QuickSort algorithm which on average runs in O(n log n).
This code should work for you, I change your properties to auto-properties, and defined a static CompareCarSpecs method that just uses the already existing DateTime.CompareTo method.
Hope this helps.
Putting some of the pieces mentioned here together. This compiles and works in C# 4.x and VS2010. I tested with a WinForm . So add the method to the WinForm Main() . You will need the System.Linq and System.Generic.Collection s assemblies at least.
If you’re after an efficient way of sorting, I’d advise against using bubble sort and go for a quick sort instead. This page provides a rather good explanation of the algorithm:
I would avoid writing my own sorting algorithm, but if you are going to anyway, have a look at http://www.sorting-algorithms.com/ for some comparrisons of different sorting algorithms.
If you are using 2.0, the following discussion may be useful: C# List<> Sort by x then y
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Сортировка List в C#
Часто приходится создавать списки List со ссылочными типами данных, такими как классы или массивы. Другая же необходимая задача — это сортировка списков. В языке C# у List есть метод, позволяющий сортировать список. Когда список состоит из примитивных типов данных — методом Sort пользоваться легко, но если данные представляют собой какую-либо структуру или класс, то всё не так очевидно. Рассмотрим в данной статье сортировку List в C#.
Создание списка List для сортировки
Допустим нам необходимо хранить данные пользователей: их имя и год рождения. Для этого создадим в языке программирования C# список List, элементами которого, является строковый массив. Имя переменной: people.
Добавим в него четыре элемента с информацией о пользователях:
Соответственно каждый элемент списка List содержит одномерный строковый массив из двух элементов с именем и годом рождения человека.
Вспомогательный метод для вывода списка в консоль
Напишем также метод OutputList, который выводит все элементы коллекции на экран в консоль.
Аргументы метода: list — сам список, который нужно вывести в консоль и label — строка с информацией (она будет выведена перед списком).
Выведем на экран текущее содержимое списка people (запустим программу комбинацией клавиш Ctrl + F5):

Сортировка List в языке C#
Для того, чтобы произвести сортировку списка List, элементами которого являются ссылочные типы данных, сначала необходимо написать метод, описывающий сравнение двух таких «сложных» элементов списка.
Данный метод называется Compare и он должен находиться в отдельно созданном классе, реализующем интерфейс IComparer<>.
Первый пример сортировки списка
Сначала выполним сортировку по такому принципу: отсортируем список people по возрастанию длин имён людей.
Для этого создадим класс с именем NameComparer (имя может быть любым допустимым), который реализует интерфейс IComparer<string[]>. Тип string[] мы указываем, поскольку элемент списка в нашем случаем — это строковый массив.