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任何帮助请

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 回答