Список заказов <T>на числовой основе - PullRequest
0 голосов
/ 26 апреля 2011

Я использую этот код для упорядочения списка по убыванию чисел

ItemsList.OrderByDescending(x => x.Views, new IntComparer());

public class IntComparer : IComparer<long>
{
    IComparer<long> Members;

    public int Compare(long x, long y)
    {
        return Math.Sign(x - y);
    }
}

, но это не порядок вообще: S любая помощь, плз

Ответы [ 2 ]

5 голосов
/ 26 апреля 2011

Enumerable.OrderByDescending является частью LINQ.

Таким образом, он не изменяет список, но создает новый.Используйте

ItemsList = ItemsList.OrderByDescending(x => x.Views, new IntComparer()).ToList();

или что-то похожее.

0 голосов
/ 26 апреля 2011

Вы должны прочитать это: http://msdn.microsoft.com/fr-fr/library/bb534861.aspx#Y1185 Похоже, этот метод не обновляет список, поэтому вам нужно сохранить результат.

List aList = ItemsList.OrderByDescending(x => x.Views, new IntComparer());

public class IntComparer : IComparer<long>
{
    IComparer<int> Members;

    public int Compare(long x, long y)
    {
        return Math.Sign(x - y);
    }
}

ItemsList = aList;
...