Mirror of Svelto.ECS because we're a fan of it
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

FastConcatUtility.cs 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System.Text;
  2. public static class FastConcatUtility
  3. {
  4. static readonly StringBuilder _stringBuilder = new StringBuilder(256);
  5. public static string FastConcat<T>(this string str1, T str2)
  6. {
  7. lock (_stringBuilder)
  8. {
  9. _stringBuilder.Length = 0;
  10. _stringBuilder.Append(str1);
  11. _stringBuilder.Append(str2);
  12. return _stringBuilder.ToString();
  13. }
  14. }
  15. public static string FastConcat(this string str1, string str2, string str3)
  16. {
  17. lock (_stringBuilder)
  18. {
  19. _stringBuilder.Length = 0;
  20. _stringBuilder.Append(str1);
  21. _stringBuilder.Append(str2);
  22. _stringBuilder.Append(str3);
  23. return _stringBuilder.ToString();
  24. }
  25. }
  26. public static string FastConcat(this string str1, string str2, string str3, string str4)
  27. {
  28. lock (_stringBuilder)
  29. {
  30. _stringBuilder.Length = 0;
  31. _stringBuilder.Append(str1);
  32. _stringBuilder.Append(str2);
  33. _stringBuilder.Append(str3);
  34. _stringBuilder.Append(str4);
  35. return _stringBuilder.ToString();
  36. }
  37. }
  38. public static string FastConcat(this string str1, string str2, string str3, string str4, string str5)
  39. {
  40. lock (_stringBuilder)
  41. {
  42. _stringBuilder.Length = 0;
  43. _stringBuilder.Append(str1);
  44. _stringBuilder.Append(str2);
  45. _stringBuilder.Append(str3);
  46. _stringBuilder.Append(str4);
  47. _stringBuilder.Append(str5);
  48. return _stringBuilder.ToString();
  49. }
  50. }
  51. public static string FastJoin(this string[] str)
  52. {
  53. lock (_stringBuilder)
  54. {
  55. _stringBuilder.Length = 0;
  56. for (int i = 0; i < str.Length; i++)
  57. _stringBuilder.Append(str[i]);
  58. return _stringBuilder.ToString();
  59. }
  60. }
  61. public static string FastJoin(this string[] str, string str1)
  62. {
  63. lock (_stringBuilder)
  64. {
  65. _stringBuilder.Length = 0;
  66. for (int i = 0; i < str.Length; i++)
  67. _stringBuilder.Append(str[i]);
  68. _stringBuilder.Append(str1);
  69. return _stringBuilder.ToString();
  70. }
  71. }
  72. }
  73. namespace Utility
  74. {
  75. #if UNITY_5 || UNITY_5_3_OR_NEWER
  76. #endif
  77. }