CardHelper.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using System.Collections.Generic;
  3. namespace ET.Server;
  4. /// <summary>
  5. /// 麻将相关工具类
  6. /// </summary>
  7. public static class CardHelper
  8. {
  9. /// <summary>
  10. /// 删除数组中的元素
  11. /// </summary>
  12. /// <param name="target">数据源</param>
  13. /// <param name="v">删除的元素</param>
  14. /// <returns>新的数据源</returns>
  15. public static int[] Remove(int[] target, int v)
  16. {
  17. int len = target.Length;
  18. if (len == 0)
  19. {
  20. return target;
  21. }
  22. // 直接查找要删除的元素
  23. for (int i = 0; i < len; i++)
  24. {
  25. if (target[i] == v)
  26. {
  27. int[] dest = new int[len - 1];
  28. if (i > 0)
  29. {
  30. Array.Copy(target, 0, dest, 0, i);
  31. }
  32. if (i != len - 1)
  33. {
  34. Array.Copy(target, i + 1, dest, i, len - i - 1);
  35. }
  36. return dest;
  37. }
  38. }
  39. // 如果未找到元素,返回原数组
  40. return target;
  41. }
  42. /// <summary>
  43. /// 向数组添加元素
  44. /// </summary>
  45. /// <param name="src">数据源</param>
  46. /// <param name="v">增加的元素</param>
  47. /// <returns>新的数据源</returns>
  48. public static int[] Add(int[] src, int v) {
  49. List<int> list = new List<int>(src);
  50. list.Add(v);
  51. return list.ToArray();
  52. }
  53. }