Есть 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
.
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Мне нужно в качестве параметра для конвертера указать Binding, но это невозможно, так как ConverterParameter не является DependencyProperty
Господа, помогите пожалуйста разобратьсяНужно из программы на C# передать переменную в браузерную строку таким образом: http://localhost/Projects/buttons/gett
Доброго времени сутокПытаюсь в проекте MVC включить миграцию базы, в Package Manager Console прописываю: Enable-Migrations -ContextTypeName WebApplication1