int[] arrInt = new int[100]; for (int i = 0; i < 100; i++) { arrInt[i] = i; } arrInt = arrInt.OrderBy(c => Guid.NewGuid()).ToArray<int>(); foreach (var item in arrInt) { Console.WriteLine(item); } Console.ReadKey();
反編譯後ui
int[] arrInt = new int[100]; for (int i = 0; i < 100; i++) { arrInt[i] = i; } arrInt = (from c in arrInt orderby Guid.NewGuid() select c).ToArray<int>(); int[] array = arrInt; for (int j = 0; j < array.Length; j++) { int item = array[j]; Console.WriteLine(item); } Console.ReadKey();
實質spa
用C#3.0新增的Linq技術中的OrderBy方法排序,排序的依據是與原序列元素對應生成的一個「鍵」——Grid.NewGuid()方法返回的一個隨機32位不重複Guid字符串。由於每次生成的Guid字符串大小都不一樣,且大小與生成前後無關,因此按這個「鍵」排序後的整數序列的順序是隨機的。code