M_Cyjb_ArrayUtil_Suffle__1 - CYJB/Cyjb GitHub Wiki
将数组进行随机排序。
Namespace: Cyjb
Assembly: Cyjb (in Cyjb.dll) Version: 1.0.23+7750dd8e971297c5fa962a3bee37fb78f72793f6
C#
public static T[,,] Suffle<T>(
this T[,,] array
)
- array
- Type: T[,]
要进行随机排序的数组。
- T
- 数组中元素的类型。
Type: T[,]
已完成随机排序的数组。
在 Visual Basic 和 C# 中,这个方法可以当成为类型的实例方法来调用。在采用实例方法语法调用这个方法时,请省略第一个参数。请参考 扩展方法 (Visual Basic) 或 扩展方法 (C# 编程指南) 获取更多信息。
异常 | 条件 |
---|---|
ArgumentNullException |
array 为null 。 |
应保证每个元素出现在每个位置的概率基本相同。 采用下面的代码进行测试:
int w = 2;
int h = 2;
int d = 3;
int size = w * h * d;
int[, ,] arr = new int[d, h, w];
int[,] cnt = new int[size, size];
for (int i = 0; i < 240; i++)
{
arr.Fill((z, y, x) => z * w * h + y * w + x).Suffle();
for (int j = 0; j < size; j++) cnt[j, arr[j / (w * h), j / w % h, j % w]]++;
}
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++) Console.Write("{0} ", cnt[i, j]);
Console.WriteLine();
}