У меня есть существующий HashSet с 6 элементами: {Значение: 3, Вхождение: 1}, {Значение: 1, Вхождение: 2}, {Значение: 4, Вхождение: 2}, {Значение: 5, Вхождение: 1 }, {Значение: 2, Вхождение: 1}, {Значение: 6, Вхождение: 1}
Класс элементов:
internal class Element
{
public Element(int value)
{
this.Value = value;
this.Occurrence = 1;
}
public int Value { get; set; }
public int Occurrence { get; set; }
}
Как я хочу создать SortedSet из элементов этого хеш-набора следующим образом:
var sortedSet = new SortedSet<Element>(hashSet.AsEnumerable(), new SortedSetComparer());
SortedSetComparer:
internal class SortedSetComparer : IComparer<Element>
{
public int Compare(Element x, Element y)
{
if (x != null && y != null)
{
if (x.Occurrence > y.Occurrence)
{
return 1;
}
if (y.Occurrence > x.Occurrence)
{
return -1;
}
return 0;
}
return 0;
}
}
Но в отладке я вижу, что только 2 первых элемента попали в отсортированный набор: {Значение: 3, Вхождение: 1} и {Значение: 1, Вхождение: 2}
Что я делаю не так?