7

我有这个变量:

List<Points> pointsOfList;

它包含未排序的点((x,y)-坐标);

我的问题如何按 X 降序对列表中的点进行排序。

例如:

我有这个:(9,3)(4,2)(1,1)

我想得到这个结果: (1,1)(4,2)(9,3)

先感谢您。

4

3 回答 3

12
pointsOfList.OrderBy(p=>p.x).ThenBy(p=>p.y)
于 2013-05-21T22:50:57.880 回答
11

林克:

pointsOfList = pointsOfList.OrderByDescending(p => p.X).ToList();
于 2013-05-21T22:50:36.860 回答
1

这个简单的控制台程序可以做到这一点:

class Program
{
    static void Main(string[] args)
    {    
        List<Points> pointsOfList =  new List<Points>(){
            new Points() { x = 9, y = 3},
            new Points() { x = 4, y = 2},
            new Points() { x = 1, y = 1}
        };

        foreach (var points in pointsOfList.OrderBy(p => p.x))
        {
            Console.WriteLine(points.ToString());
        }

        Console.ReadKey();
    }
}

class Points
{
    public int x { get; set; }
    public int y { get; set; }

    public override string ToString()
    {
        return string.Format("({0}, {1})", x, y);
    }
}
于 2013-05-21T22:56:10.780 回答