Extends.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System.Linq;
  2. using System.Text.Json;
  3. using System.Text.Encodings.Web;
  4. using System.Collections.Generic;
  5. namespace SHJX.Service.Common.Utils
  6. {
  7. public static class Extends
  8. {
  9. #region 包含反转
  10. /// <summary>
  11. /// 包含反转
  12. /// </summary>
  13. /// <param name="value"></param>
  14. /// <param name="values"></param>
  15. /// <returns></returns>
  16. public static bool BeIn(this object value, params object[] values) =>
  17. values.Contains(value);
  18. /// <summary>
  19. /// 包含反转
  20. /// </summary>
  21. /// <param name="value"></param>
  22. /// <param name="values"></param>
  23. /// <returns></returns>
  24. public static bool BeIn<T>(this T value, params T[] values) where T : class =>
  25. values.Contains(value);
  26. #endregion
  27. #region 深克隆
  28. /// <summary>
  29. /// Clones the specified list.
  30. /// </summary>
  31. /// <typeparam name="T"></typeparam>
  32. /// <param name="list"></param>
  33. /// <returns>List{``0}.</returns>
  34. public static List<T> Clone<T>(this List<T> list) where T : class
  35. {
  36. var deserializeSettings = JsonSerializer.Serialize(list, new JsonSerializerOptions
  37. {
  38. Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
  39. });
  40. return JsonSerializer.Deserialize<List<T>>(deserializeSettings);
  41. }
  42. #endregion
  43. }
  44. }