你不能这样转换,只能逐一把值copy过去
/// <summary>
/// 将数组里的数字顺序打散
/// </summary>
/// <param name="arr"></param>
private void ScatterArray(ref string[] arr) 
{
int l=0;
int i=0;
string temp; l=arr.Length;

System.Collections.ArrayList iarr=new System.Collections.ArrayList(l);
Random r=new Random(); //设置随机因子

while (true)
{
goon: if (iarr.Count==l)
break; i=r.Next(l);
temp=arr.GetValue(i).ToString();
if (iarr.IndexOf(temp)<0) //这个数还没有分配
iarr.Add(temp);
else
goto goon;

} iarr.CopyTo(arr);
}