對于三維數組的排序,可以使用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,用于比較三維數組的元素大小。最后,輸出排序后的結果。