C#实现将数组内元素打乱顺序的方法

本文实例讲述了C#实现将数组内元素打乱顺序的方法。分享给大家供大家参考。具体如下:

1.泛型类代码

//泛型类

class Item<T>

{

T[] item;

//构造函数

public Item(T[] obj)

{

item = new T[obj.Length];

for (int i = 0; i < obj.Length; i++)

{

item[i] = obj[i];

}

}

public Type ShowType() { return typeof(T); } //返回类型

public T[] GetItems() { return item; } //返回原数组

//返回打乱顺序后的数组

public T[] GetDisruptedItems()

{

//生成一个新数组:用于在之上计算和返回

T[] temp;

temp = new T[item.Length];

for (int i = 0; i < temp.Length; i++) { temp[i] = item[i]; }

//打乱数组中元素顺序

Random rand = new Random(DateTime.Now.Millisecond);

for (int i = 0; i < temp.Length; i++)

{

int x, y; T t;

x = rand.Next(0, temp.Length);

do

{

y = rand.Next(0, temp.Length);

} while (y == x);

t = temp[x];

temp[x] = temp[y];

temp[y] = t;

}

return temp;

}

}

2.Main函数调用

static void Main(string[] args)

{

int[] array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

//输出数组类型

Item<int> disrupter = new Item<int>(array);

Console.WriteLine("数组类型:" + disrupter.ShowType().ToString());

//输出数组

Console.Write("原输入数组为:");

for (int i = 0; i < array.Length; i++)

{

Console.Write(array[i].ToString() + ' ');

}

Console.WriteLine();

//输出一个打乱后数组

int[] disruptedArray = disrupter.GetDisruptedItems();

Console.Write("打乱后数组为:");

for (int i = 0; i < disruptedArray.Length; i++)

{

Console.Write(disruptedArray[i].ToString() + ' ');

}

Console.WriteLine();

Console.ReadLine();

}

3.运行结果

希望本文所述对大家的C#程序设计有所帮助。

以上是 C#实现将数组内元素打乱顺序的方法 的全部内容, 来源链接: utcz.com/z/325751.html

回到顶部