0

このコードを使用して、数値ベースで降順にリストを並べ替えています

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何か助けてくださいplz

4

2 に答える 2

5

Enumerable.OrderByDescendingは LINQ の一部です。

したがって、リストを変更するのではなく、新しいリストを作成しています。使用する

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

または似たようなもの。

于 2011-04-26T08:24:27.283 に答える
0

これを読む必要があります: 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;
于 2011-04-26T08:25:42.027 に答える