String.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. namespace MeloongCore.Extensions {
  4. public static class StringExtensions {
  5. /// <summary>
  6. /// 高速的 StartsWith。
  7. /// </summary>
  8. [MethodImpl(MethodImplOptions.AggressiveInlining)]
  9. public static bool StartsWithF(this string value, string prefix, bool ignoreCase = false) {
  10. if (value == null) return false;
  11. return value.StartsWith(prefix, ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal);
  12. }
  13. /// <summary>
  14. /// 高速的 EndsWith。
  15. /// </summary>
  16. [MethodImpl(MethodImplOptions.AggressiveInlining)]
  17. public static bool EndsWithF(this string value, string suffix, bool ignoreCase = false) {
  18. if (value == null) return false;
  19. return value.EndsWith(suffix, ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal);
  20. }
  21. /// <summary>
  22. /// 忽略大小写的 Contains。
  23. /// </summary>
  24. [MethodImpl(MethodImplOptions.AggressiveInlining)]
  25. public static bool ContainsIgnoreCase(this string value, string subString) {
  26. return value.IndexOf(subString, StringComparison.OrdinalIgnoreCase) >= 0;
  27. }
  28. /// <summary>
  29. /// 高速的 IndexOf。
  30. /// </summary>
  31. [MethodImpl(MethodImplOptions.AggressiveInlining)]
  32. public static int IndexOfF(this string value, string subString, bool ignoreCase = false) {
  33. return value.IndexOf(subString, ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal);
  34. }
  35. /// <summary>
  36. /// 高速的 IndexOf。
  37. /// </summary>
  38. [MethodImpl(MethodImplOptions.AggressiveInlining)]
  39. public static int IndexOfF(this string value, string subString, int startIndex, bool ignoreCase = false) {
  40. return value.IndexOf(subString, startIndex, ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal);
  41. }
  42. /// <summary>
  43. /// 高速的 LastIndexOf。
  44. /// </summary>
  45. [MethodImpl(MethodImplOptions.AggressiveInlining)]
  46. public static int LastIndexOfF(this string value, string subString, bool ignoreCase = false) {
  47. return value.LastIndexOf(subString, ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal);
  48. }
  49. /// <summary>
  50. /// 高速的 LastIndexOf。
  51. /// </summary>
  52. [MethodImpl(MethodImplOptions.AggressiveInlining)]
  53. public static int LastIndexOfF(this string value, string subString, int startIndex, bool ignoreCase = false) {
  54. return value.LastIndexOf(subString, startIndex, ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal);
  55. }
  56. }
  57. }