В LINQ, делает orderby (), выполняют выдерживающую сравнение функцию только однажды или выполняют его при необходимости?

Я нашел, что метод переставил массив в Интернете.

Random rand = new Random();
shuffledArray = myArray.OrderBy(x => rand.Next()).ToArray();

Однако я немного обеспокоен правильностью этого метода. Если OrderBy выполняется x => rand.Next() много раз для того же объекта, результаты могут конфликтовать и привести к странным вещам (возможно исключения).

Я попробовал его, и все прекрасно, но я все еще хочу знать, абсолютно ли это безопасно и всегда работает как ожидалось, и я не могу найти ответ Google.

Кто-либо мог дать мне некоторые объяснения?

Заранее спасибо.

9
задан LLS 18 October 2010 в 09:47
поделиться