Есть SortedSet. Для сравнения использую стандартный метод CompareTo().
SortedSet<int> set = new SortedSet<int>(Comparer<int>.Create((a, b) => a.CompareTo(b)));
set.Add(2);
set.Add(6);
set.Add(6);
set.Add(7);
set.Add(4);
set.Add(11);
Здесь в set находится 5 значений: 2, 4, 6, 7, 11. Что мне нужно сделать, чтобы в set попадали не только уникальные значения (в моем случае в set должны содержаться 2, 4, 6, 6, 7, 11)?
Никак, коллекции реализующие интерфейс ISet<T> по определению не могут содержать дублированных элементов. Используйте обычный List<T>.
Элегантный способ с LINQ:
List<int> lst = new List<int>(){ 4, 2, 7, 6, 11, 6 };
var sorted = lst.OrderBy(t => t).ToList(); // 2, 4, 6, 6, 7, 11
*учтите, что это создает новый список в памяти, что может негативно сказаться на производительности для больших списков.
Не знаю, стоит так делать или нет, но в SortedSet<int> можно добавить одинаковые элементы. Метод CompareTo() эквивалентен записи: a > b ? 1 : a < b ? -1 : 0. То есть, если элемент уже содержится в set, то этот элемент не добавляется. Но, если заменить в условии 0 на -1, то компаратор просто поставит одинаковые элементы друг перед другом:
SortedSet<int> set = new SortedSet<int>(Comparer<int>.
Create((a, b) => a > b ? 1 : a < b ? -1 : -1));
set.Add(2);
set.Add(6);
set.Add(6);
set.Add(7);
set.Add(4);
set.Add(11);
Здесь set содержит 2, 4, 6, 6, 7, 11.
Используйте другой контейнер, например List<int>, после добавления элементов вызовите метод Sort.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости