C#中坐标进行左右上下排序
时间: 2024-09-22 21:01:47 浏览: 87
MapObject C#课堂作业
在C#中,如果你想要对二维坐标数组按照X轴和Y轴进行排序,你可以利用`Array.Sort`方法或者自定义比较器。假设你有一个二维坐标列表`List<Point>`,其中`Point`是一个包含`X`和`Y`属性的结构:
```csharp
using System;
using System.Collections.Generic;
// 定义一个Point结构
public struct Point
{
public int X { get; set; }
public int Y { get; set; }
}
public class Program
{
// 自定义一个IComparer用于按照坐标排序
public class CoordinateSorter : IComparer<Point>
{
public int Compare(Point p1, Point p2)
{
if (p1.X == p2.X)
return p1.Y.CompareTo(p2.Y); // 先按X排序,再按Y排序
else
return p1.X.CompareTo(p2.X);
}
}
public static void Main()
{
List<Point> coordinates = new List<Point> { ... }; // 你的坐标列表
// 使用内置的Array.Sort方法排序,传入自定义的比较器
Array.Sort(coordinates.ToArray(), new CoordinateSorter());
// 或者使用LINQ的OrderBy和ThenBy
// coordinates = coordinates.OrderBy(p => p.X).ThenBy(p => p.Y).ToList();
foreach (var point in coordinates)
{
Console.WriteLine($"({point.X}, {point.Y})");
}
}
}
```
阅读全文