读书人

请教C#中有没有什么现成的给队列随

发布时间: 2012-05-12 15:39:31 作者: rapoo

请问,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……

读书人网 >C#

热点推荐