对 2D 矩阵进行排序的方法,如何使该方法通用

本文关键字:方法 何使该 排序 2D | 更新日期: 2023-09-27 18:31:26

public static void Sort2DArray(int[,] matrix)
{
    var numb = new int[matrix.GetLength(0) * matrix.GetLength(1)];
    int i = 0;
    foreach (var n in matrix)
    {
        numb[i] = n;
        i++;
    }
    Array.Sort(numb);
    int k = 0;
    for (i = 0; i < matrix.GetLength(0); i++)
    {
        for (int j = 0; j < matrix.GetLength(1); j++)
        {
            matrix[i, j] = numb[k];
            k++;
        }
    }
}

我很好奇如何使这种方法通用。我希望它可以对双精度矩阵、字符串矩阵等进行排序。

对 2D 矩阵进行排序的方法,如何使该方法通用

可以使用IComparable接口作为泛型类型T说明符。

查看这些链接

  1. 如何在 C# 中对二维数组进行排序
  2. 如何在 C# 中对二维数组进行排序?
  3. http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=151

我已经解决了。 该方法如下所示:

    public static void Sort2DArray<T>(T[,] matrix)
    {
        var numb = new T[matrix.GetLength(0) * matrix.GetLength(1)];
        int i = 0;
        foreach (var n in matrix)
        {
            numb[i] = n;
            i++;
        }
        Array.Sort(numb);
        int k = 0;
        for (i = 0; i < matrix.GetLength(0); i++)
        {
            for (int j = 0; j < matrix.GetLength(1); j++)
            {
                matrix[i, j] = numb[k];
                k++;
            }
        }
    }
相关文章: