C# 泛型类实现数组打乱顺序的问题。

private static System.Random this_rand = new System.Random();
public static void ShuffleList<T>(IList<T> list)
{
if (list.Count > 1)
{
for (int i = list.Count - 1; i >= 0; i--)
{
int pos = this_rand.Next(i + 1);

//Swap elements
T tmp = list[i];
list[i] = list[pos];
list[pos] = tmp;
}
}
}

不久前接的一段扑克洗牌的代码,高人请帮忙看下这段代码是什么意思。
list的值该怎么定义,还有就是要完成这个功能我还需要做些什么?
还有像这样的泛型类我能直接在一个方法里 ShuffleList<T>();这么引用并输出该值吗?(显然不行)
本人经验不多,还请多指点。。

int len = 36;
int[] a = new int[len];
int[] b = new int[len];
 
for (int i = 0; i < len; i++) a[i] = i + 1;
 
Random rnd = new Random();
int r, aLen;
int[] tmp = new int[0];
 
for (int i = 0; i < len; i++) {
    aLen = a.Length;
    r = rnd.Next(0, aLen);
    b[i] = a[r];
    Array.Resize(ref tmp, aLen - 1);
 
    for (int j = 0, k = 0; j < aLen; j++) {
        if (j != r) tmp[k++] = a[j];
    }
 
    a = tmp;
}
温馨提示:答案为网友推荐,仅供参考
相似回答