C#二维坐标点排序例子
时间: 2024-10-17 13:14:38 浏览: 33
在C#中,如果你想要对二维坐标点(Point)进行排序,比如按照x轴和y轴的值进行升序排列,你可以创建一个自定义的比较器(IComparer<Point>)。下面是一个简单的示例:
首先,定义一个Point类:
```csharp
public class Point
{
public int X { get; set; }
public int Y { get; set; }
public Point(int x, int y)
{
X = x;
Y = y;
}
}
```
然后,创建一个比较器类,实现IComparer<Point>接口:
```csharp
using System;
class CoordinateComparator : IComparer<Point>
{
public int Compare(Point p1, Point p2)
{
if (p1.X == p2.X)
return p1.Y.CompareTo(p2.Y);
else
return p1.X.CompareTo(p2.X);
}
}
```
最后,你可以使用List<T>.Sort方法,传入你的比较器:
```csharp
List<Point> points = new List<Point> { ... }; // 填充你的坐标点集合
points.Sort(new CoordinateComparator());
```
现在,`points`列表将按x轴升序,如果x值相同,则按y轴升序排序。
阅读全文