using System;
using System.Collections.Generic;
public static class ListExtensions
{
public static void Shuffle<T>(this List<T> list)
{
int n = list.Count;
Random rnd = new Random();
for (int i = 0; i < n; i++)
{
int r = i + rnd.Next(n - i);
(list[r], list[i]) = (list[i], list[r]);
}
}
public static void SortRandom<T>(this T[] array){
int r;
for(int i=array.Length-1;i>0;i--){
r = UnityEngine.Random.Range(0, i);
(array[r], array[i]) = (array[i], array[r]);
}
}
public static void SortRandom<T>(this List<T> list){
int r;
for(int i=list.Count-1;i>0;i--){
r = UnityEngine.Random.Range(0, i);
(list[r], list[i]) = (list[i], list[r]);
}
}
}
调用方式
var list2 = new List<int>();
for (var i = 0; i < 10; i++)
{
list2.Add(i);
}
//list2.Shuffle<int>();
list2.SortRandom<int>();
foreach (var value in list2)
{
Debug.Log($"{value}");
}