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 мав би сортувати той список за якимсь параметром, але в якості параметру використовується рандомне число. То як воно сортує оте все?

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...

2

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

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

Подякували: NagarD, ostap34PHP, LoganRoss3

3

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

koala написав:

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

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

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

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

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...