毎回ランダムな順序で並べ替えたいリストがあります。
私が遭遇したいくつかの方法があります:
list = list.OrderBy(x => Guid.NewGuid()).ToList();
var rnd = new Random(); myList = myList.OrderBy(x => rnd.Next()).ToList();
static Random random = new Random(); public static IEnumerable<T> RandomPermutation<T>(IEnumerable<T> sequence) { T[] retArray = sequence.ToArray(); for (int i = 0; i < retArray.Length - 1; i += 1) { int swapIndex = random.Next(i + 1, retArray.Length); T temp = retArray[i]; retArray[i] = retArray[swapIndex]; retArray[swapIndex] = temp; } return retArray; }
明らかに1と3ではコード量に大きな違いがありますが、何かメリットはありますか?