public static class ArrayHelper
    {
        /// <summary>
        /// 数组乱序
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="arr"></param>
        public static T[] RandomSort<T>(this T[] arr)
        {
            var count = arr.Length;
            var newArr = new T[count];
            int newArrayItemCount = 0, originalArrayIndex = 0, newArrayIndex = 0;
            Random random = new Random();
           
            do
            {
                var balanceCount = count - newArrayItemCount;
                originalArrayIndex = random.Next(balanceCount);
                newArr[newArrayIndex++] = arr[originalArrayIndex];
                newArrayItemCount++;
                arr[originalArrayIndex] = arr[balanceCount - 1];
            } while (count > newArrayItemCount);

            return newArr;
        }
    }

 

相关文章:

  • 2022-12-23
  • 2021-11-01
  • 2021-10-14
  • 2021-09-26
  • 2021-09-18
  • 2022-01-07
  • 2022-03-07
猜你喜欢
  • 2021-06-25
  • 2022-12-23
  • 2022-12-23
  • 2021-06-11
  • 2021-11-21
  • 2021-05-19
  • 2022-12-23
相关资源
相似解决方案