对 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++;
}
}
}
我很好奇如何使这种方法通用。我希望它可以对双精度矩阵、字符串矩阵等进行排序。
可以使用IComparable
接口作为泛型类型T
说明符。
查看这些链接
- 如何在 C# 中对二维数组进行排序
- 如何在 C# 中对二维数组进行排序?
- 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++;
}
}
}