我正在 HashSet 中保存坐标值。
我想按照上图中的顺序对其进行排序。
下面是一个典型的点结构,使用哈希集。
struct Point
{
public int x, y;
public Point(int x, int y)
{
this.x = x;
this.y = y;
}
}
private HashSet<Point> hashset = new HashSet<Point>();
我找到了一个只对一个值进行排序的来源。
但是,我还没有找到对两个或坐标值进行排序的来源。
给我一个如何对坐标进行排序的示例。
最佳答案
您可以使用自定义比较器来实现您想要的目的,您可以在其中定义自己的规则:
var comparer = Comparer<Point>.Create((p1, p2) =>
{
if (p1.y < p2.y)
{
return p1.x > p2.x ? 1 : -1;
}
else
{
return p1.x < p2.x ? 1 : -1;
}
});
hashset.OrderBy(p => p, comparer)
附注不能 100% 确定所有条件都正确,但希望您能明白我的想法,以便您可以按照此示例编写您想要的逻辑。
关于c# - 如何在 C# 中对哈希集的坐标进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56022119/