111,097
社区成员




string[] sArray = AllUrl.Split(new char[] {'\n' });
SufeiUtil.RandomHelper r = new SufeiUtil.RandomHelper();
r.GetRandomArray<T>(string[] sArray); //这个怎么调用啊,两个参数不知道怎么写,新手,谢谢。
/// <summary>
/// 对一个数组进行随机排序
/// </summary>
/// <typeparam name="T">数组的类型</typeparam>
/// <param name="arr">需要随机排序的数组</param>
public void GetRandomArray<T>(T[] arr)
{
//对数组进行随机排序的算法:随机选择两个位置,将两个位置上的值交换
//交换的次数,这里使用数组的长度作为交换次数
int count = arr.Length;
//开始交换
for (int i = 0; i < count; i++)
{
//生成两个随机数位置
int randomNum1 = GetRandomInt(0, arr.Length);
int randomNum2 = GetRandomInt(0, arr.Length);
//定义临时变量
T temp;
//交换两个随机数位置的值
temp = arr[randomNum1];
arr[randomNum1] = arr[randomNum2];
arr[randomNum2] = temp;
}
}
public static void GetRandomArray<T>(T[] arr)
{
//对数组进行随机排序的算法:随机选择两个位置,将两个位置上的值交换
//交换的次数,这里使用数组的长度作为交换次数
int count = arr.Length;
//开始交换
for (int i = 0; i < count; i++)
{
//生成两个随机数位置
int randomNum1 = GetRandomInt(0, arr.Length);
int randomNum2 = GetRandomInt(0, arr.Length);
//定义临时变量
T temp;
//交换两个随机数位置的值
temp = arr[randomNum1];
arr[randomNum1] = arr[randomNum2];
arr[randomNum2] = temp;
}
}
private static int GetRandomInt(int p1, int p2)
{
return new Random().Next(p1, p2);
}
static void Main(string[] args)
{
int[] tmp = new int[5]{1,2,3,4,5};
string[] tmp1 = new string[] { "12","122","asdfa"};
GetRandomArray(tmp1); //1
GetRandomArray<string>(tmp1); //2 1,2均可
GetRandomArray(tmp);
GetRandomArray<int>(tmp);
Console.ReadLine();
}