CompareProduct.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using wms.dto.response.sx;
  5. using wms.service.Help.LayerPacking.model;
  6. namespace wms.service.Help.LayerPacking
  7. {
  8. /// <summary>
  9. /// 比较产品
  10. /// </summary>
  11. public class CompareProduct : IEqualityComparer<LayerPackingProduct>
  12. {
  13. /// <summary>
  14. /// 比较产品
  15. /// </summary>
  16. /// <param name="x"></param>
  17. /// <param name="y"></param>
  18. /// <returns></returns>
  19. public bool Equals(LayerPackingProduct x, LayerPackingProduct y)
  20. {
  21. if (ReferenceEquals(x, y)) return true;
  22. if (x == null || y == null) return false;
  23. return string.Equals(x.ContGrpBarCode, y.ContGrpBarCode, StringComparison.Ordinal);
  24. }
  25. /// <summary>
  26. /// 获取产品哈希码
  27. /// </summary>
  28. /// <param name="obj"></param>
  29. /// <returns></returns>
  30. public int GetHashCode(LayerPackingProduct obj)
  31. {
  32. if (obj?.ContGrpBarCode == null) return 0;
  33. // 使用更好的哈希算法,减少碰撞
  34. unchecked
  35. {
  36. int hash = 17;
  37. hash = hash * 31 + obj.ContGrpBarCode.GetHashCode();
  38. return hash;
  39. }
  40. }
  41. }
  42. }