阅读量:0
对于三维数组的排序,可以使用Array类的Sort方法结合自定义的比较器来实现高效排序。以下是一个示例代码:
using System; class Program { static void Main() { int[,,] array = new int[2, 3, 4] { { {5, 3, 2, 7}, {1, 9, 4, 8}, {6, 0, 10, 12} }, { {11, 13, 15, 14}, {16, 17, 18, 19}, {20, 21, 22, 23} } }; Array.Sort(array, new ThreeDimensionalArrayComparer()); // 输出排序后的结果 for (int i = 0; i < array.GetLength(0); i++) { for (int j = 0; j < array.GetLength(1); j++) { for (int k = 0; k < array.GetLength(2); k++) { Console.Write(array[i, j, k] + " "); } Console.WriteLine(); } Console.WriteLine(); } } } class ThreeDimensionalArrayComparer : IComparer { public int Compare(object x, object y) { int[,,] array1 = (int[,,])x; int[,,] array2 = (int[,,])y; for (int i = 0; i < array1.GetLength(0); i++) { for (int j = 0; j < array1.GetLength(1); j++) { for (int k = 0; k < array1.GetLength(2); k++) { if (array1[i, j, k] != array2[i, j, k]) { return array1[i, j, k].CompareTo(array2[i, j, k]); } } } } return 0; } }
在上面的示例代码中,首先定义了一个三维数组,并使用Array类的Sort方法对其进行排序。同时,还定义了一个自定义的比较器ThreeDimensionalArrayComparer,用于比较三维数组的元素大小。最后,输出排序后的结果。