gpt4 book ai didi

c# - 根据两个值 C# 对点类列表进行排序

转载 作者:太空狗 更新时间:2023-10-30 00:08:09 25 4
gpt4 key购买 nike

我想先根据 x 然后根据 y 对 C# 中的类点列表(见下文)进行排序。

public class Point
{
public int x;
public int y;
public Point(int xp, int yp)
{
x = xp;
y = yp;
}
}

如何做到这一点:我是 C# 的新手,与实现类的自定义比较器的 Java 比较方法有任何相似之处,而且我想将比较方法 (int CompareTo) 添加到类中以按类(class)排序。

提前致谢。

最佳答案

是的,您正在寻找 IComparable<T> IComparer<T> - 后者相当于 Comparator<E> Java 接口(interface)。

如果要添加与 Point 的比较类本身,使Point实现 IComparable<Point> (也可能是非通用的 IComparable 接口(interface))。如果你想在别处实现比较,让另一个类实现 IComparer<Point> .

对于平等,.NET 也有 IEquatable<T>IEqualityComparer<T> .这些用于 Dictionary<,> 中的关键比较之类的事情。 .

作为旁注,我强烈建议您不要拥有公共(public)字段 - 您可能希望将变量设置为 readonly . (不可变类型通常更容易推理。)您可能决定制作 Point一个struct也是,而不是 class .

关于c# - 根据两个值 C# 对点类列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12399804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com