在C#中如何自定义Vector的排序规则

   2024-09-30 5200
核心提示:在C#中,你可以使用ListT和自定义的比较器来实现自定义的Vector排序规则using System;using System.Collections.Generic;class P

在C#中,你可以使用List<T>和自定义的比较器来实现自定义的Vector排序规则

using System;using System.Collections.Generic;class Program{    static void Main(string[] args)    {        List<Vector> vectors = new List<Vector>        {            new Vector(1, 2),            new Vector(3, 4),            new Vector(-1, -2)        };        vectors.Sort(new VectorComparer());        foreach (var vector in vectors)        {            Console.WriteLine($"({vector.X}, {vector.Y})");        }    }}public class Vector{    public int X { get; set; }    public int Y { get; set; }    public Vector(int x, int y)    {        X = x;        Y = y;    }}public class VectorComparer : IComparer<Vector>{    public int Compare(Vector v1, Vector v2)    {        // 自定义排序规则,例如按照曼哈顿距离排序        int distance1 = Math.Abs(v1.X) + Math.Abs(v1.Y);        int distance2 = Math.Abs(v2.X) + Math.Abs(v2.Y);        return distance1.CompareTo(distance2);    }}

在这个示例中,我们创建了一个名为Vector的类,并实现了一个名为VectorComparer的自定义比较器。VectorComparer实现了IComparer<Vector>接口,并重写了Compare方法,该方法定义了排序规则。在这个例子中,我们按照曼哈顿距离对向量进行排序。

然后,我们创建了一个List<Vector>,并使用Sort方法对其进行排序。Sort方法接受一个IComparer<T>参数,所以我们可以传入自定义的比较器VectorComparer。最后,我们遍历并打印排序后的向量列表。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号