CardHelper.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. /// <summary>
  54. /// 获取数组中某个元素的数量
  55. /// </summary>
  56. /// <param name="target"></param>
  57. /// <param name="card"></param>
  58. /// <returns></returns>
  59. public static int CountCardNum(int[] target, int card) {
  60. int i = 0;
  61. foreach (int tar in target)
  62. {
  63. if (tar == card)
  64. {
  65. i++;
  66. }
  67. }
  68. return i;
  69. }
  70. }