Extensions.cs 2.8 KB

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