Сортировка по Random.Next ()

Вэтот вопрос Одним из предложений является сортировка списка по Random.Next ().

Я предполагаю (может быть неправильно) онпредлагает это

    public static IEnumerable RandomSort(this IEnumerable items)
    {
        Random r = new Random();
        var a = items.ToArray();
        Array.Sort(a, (t1, t2) => (r.Next()%2==0)?-1 : 1);
        return a;
    }

(Да, там уже есть функция Array.RandomShuffle, которую вы, очевидно, использовали бы вместо этого.не вопрос)

РЕДАКТИРОВАТЬ: плакат разъяснил ответ. Он предлагал использовать пункт OrderBy

Вопрос в том, безопасен ли приведенный выше код (с использованием Array.Sort ())?

Моя проблема в том, что это нарушит фундаментальный закон сортировки предикатов:

если (а < б) и (б < в) тогда (а < с)

Это'даже не гарантирует, что если ( б) тогда (а < б) в следующий раз, когда вы спросите.

Будет ли это принять вас в "неопределенное поведение " территория?

Например, это может привести к сбою или падению в бесконечный цикл в зависимости от последовательности чисел, которую возвращает Random ()?

Ответы на вопрос(5)

Ваш ответ на вопрос