【问题标题】:How to sort List<Point> [duplicate]如何排序 List<Point> [重复]
【发布时间】:2013-05-21 22:49:33
【问题描述】:

我有这个变量:

List<Points> pointsOfList;

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

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

例如:

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

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

提前谢谢你。

【问题讨论】:

  • 您的示例显示了按 X 升序排序的列表。

标签: c# .net linq list


【解决方案1】:
pointsOfList.OrderBy(p=>p.x).ThenBy(p=>p.y)

【讨论】:

  • 我可能错了,但你必须给它赋值,对吗?
  • 您的意思是“给它赋值”而不是“给它赋值”吗?如果是的话,我记下的表达式会计算出所请求的内容,然后他需要继续执行或存储它或任何他想做的事情。
【解决方案2】:

LINQ:

pointsOfList = pointsOfList.OrderByDescending(p => p.X).ToList();

【讨论】:

    【解决方案3】:

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

    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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-26
      • 1970-01-01
      • 2012-11-29
      • 1970-01-01
      相关资源
      最近更新 更多