Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
251 of 1492 menu
◀ ▶

Метод Shuffle

С .NET 8 Shuffle принимает Span<T> или массив и меняет порядок элементов внутри него. Новый массив не создаётся. Порядок после вызова случаен, поэтому в примерах проверяют, что набор тот же - например, сумма элементов не изменилась. Вызывают Random.Shared.Shuffle.

Синтаксис

int[] nums = { 1, 2, 3, 4, 5 }; Random.Shared.Shuffle(nums);

Пример

Давайте перемешать массив и сравнить сумму до и после:

using System; class Program { static void Main() { int[] nums = { 1, 2, 3, 4, 5 }; int sumBefore = 0; foreach (int n in nums) { sumBefore += n; } Random.Shared.Shuffle(nums); int sumAfter = 0; foreach (int n in nums) { sumAfter += n; } Console.WriteLine(sumBefore == sumAfter); } }

Результат выполнения кода:

True

Пример

Давайте перемешать через Span<int>:

using System; class Program { static void Main() { int[] nums = { 1, 2, 3, 4, 5 }; int sumBefore = 0; foreach (int n in nums) { sumBefore += n; } Span<int> span = nums; Random.Shared.Shuffle(span); int sumAfter = 0; foreach (int n in nums) { sumAfter += n; } Console.WriteLine(sumBefore == sumAfter); } }

Результат выполнения кода:

True

Пример

Давайте проверим, что длина массива та же:

using System; class Program { static void Main() { int[] nums = { 1, 2, 3, 4, 5 }; int lenBefore = nums.Length; Random.Shared.Shuffle(nums); Console.WriteLine(nums.Length == lenBefore); } }

Результат выполнения кода:

True

Смотрите также

  • метод GetItems,
    который выбирает элементы в новый массив
  • Random.Shared,
    через который вызывают Shuffle
  • метод Next,
    источник случайности
  • Random,
    класс генератора
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить