首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请教,C#中,有没有什么现成的给队列随机排序的方法

2012-05-12 
请问,C#中,有没有什么现成的给队列随机排序的方法?就是类似java中,Collections.shuffle的函数?或者有没有

请问,C#中,有没有什么现成的给队列随机排序的方法?
就是类似java中,Collections.shuffle的函数?
或者有没有其他符合平均分布的随机排序方法?

[解决办法]

C# code
可以自己写一个 /// <summary>        /// 随机排序        /// </summary>        /// <param name="arry"></param>        /// <returns></returns>        public static int[] RandSort(int[] arry)        {            int[] arryNew = new int[arry.Length];            Random rnd = new Random();            int n = arry.Length;            int i = 0;            while (n > 0)            {                int index = rnd.Next(n);                arryNew[i] = arry[index];                arry[index] = arry[n-1];                n--;                i++;            }            return arryNew;        }//调用int[] arry = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int[] arryRes = RandSort(arry);
[解决办法]
C# code
Random r = new Random((int) DateTime.Now.Ticks);            var list = Enumerable.Range(0, 99).ToList();            list.Sort((x, y) => r.Next(-1,1));//这一句就行了            list.ForEach(x=>Console.Write(x+"\t"));            Console.Read();
[解决办法]
用linq试试,arr = arr.OrderBy(x => rnd.Next())

[解决办法]
探讨
C# code


Random r = new Random((int) DateTime.Now.Ticks);
var list = Enumerable.Range(0, 99).ToList();
list.Sort((x, y) => r.Next(-1,1));//这一句就行了
list.ForEac……

热点排行