91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

在C#中如何自定義Vector的排序規則

c#
小樊
88
2024-09-04 16:26:43
欄目: 編程語言

在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。最后,我們遍歷并打印排序后的向量列表。

0
满城县| 大宁县| 许昌县| 土默特左旗| 易门县| 青龙| 太仆寺旗| 正蓝旗| 陵川县| 望都县| 唐海县| 黄大仙区| 山阳县| 麟游县| 曲靖市| 兴义市| 合川市| 南乐县| 区。| 五大连池市| 彰武县| 稻城县| 永吉县| 息烽县| 孝义市| 修武县| 永靖县| 黑河市| 偃师市| 商河县| 恩平市| 玉溪市| 黔南| 台东市| 丰台区| 胶南市| 呼玛县| 昌图县| 仲巴县| 文成县| 阿拉尔市|