1

Тема: Як працює різний код

Добрий день.
Що тут відбувається?

var random = new Random(DateTime.Now.Millisecond);
foreach (int i in Enumerable.Range(0, 5).OrderBy(x=>random.Next()))
{
    Console.WriteLine(i);
}

Enumerable.Range(0, 5) створює список з п'яти елементів, з 0 до 4 включно, OrderBy мав би сортувати той список за якимсь параметром, але в якості параметру використовується рандомне число. То як воно сортує оте все?

2

Re: Як працює різний код

Так і сортує. OrderBy бере параметром функцію, що зі значення елементу робить ключ, і сортує масив за цими ключами. Оскільки функція повертає випадкові значення, то масив буде відсортований у випадковому порядку.
І вирівнюйте код, ви не дитина.

Подякували: NaharD, ostap34PHP, LoganRoss, leofun014

3

Re: Як працює різний код

koala написав:

Так і сортує. OrderBy бере параметром функцію, що зі значення елементу робить ключ, і сортує масив за цими ключами. Оскільки функція повертає випадкові значення, то масив буде відсортований у випадковому порядку.
І вирівнюйте код, ви не дитина.

Ну я так і пойняв. Просто відразу було не очевидно, що

Enumerable.Range(0, 5).OrderBy(x=>random.Next())

виконується лише один раз