Modules.cs 1007 B

1234567891011121314151617181920212223242526272829303132333435
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using UnityEngine;
  6. public static class Module {
  7. /// <summary>
  8. /// 将 List 随机打乱。
  9. /// </summary>
  10. public static List<T> Shuffle<T>(this List<T> list, System.Random random = null) {
  11. random ??= new System.Random();
  12. for (int i = 0; i < list.Count; i++) {
  13. int randomIndex = random.Next(list.Count);
  14. (list[randomIndex], list[i]) = (list[i], list[randomIndex]);
  15. }
  16. return list;
  17. }
  18. /// <summary>
  19. /// 随机返回数组中的一个元素。
  20. /// </summary>
  21. public static T RandomOne<T>(this List<T> list, System.Random random = null) {
  22. random ??= new System.Random();
  23. return list[random.Next(list.Count)];
  24. }
  25. /// <summary>
  26. /// 可自我返回的 Sort 扩展方法。
  27. /// </summary>
  28. public static List<T> SortAndReturn<T>(this List<T> list) {
  29. list.Sort();
  30. return list;
  31. }
  32. }