Skip to content

Releases: linkdotnet/StringBuilder

v3.2.0

31 Oct 20:21
f1a4f05

Choose a tag to compare

Changed

  • Renamed PadLeft(ReadOnlySpan<char>, int, char) and PadRight(ReadOnlySpan<char>, int, char) to AppendPadLeft(ReadOnlySpan<char>, int, char) and AppendPadRight(ReadOnlySpan<char>, int, char) respectively.

v3.1.0

31 Oct 15:46
1ae92d9

Choose a tag to compare

Added

  • Added PadLeft(ReadOnlySpan<char>, int, char) and PadRight(ReadOnlySpan<char>, int, char) methods to append padded strings without allocating additional memory (by @SMAH1 in #260)

v3.0.0

30 Oct 06:56
695b6c5

Choose a tag to compare

This is the v3 major release. The API is almost the same as in v2 - there is only a slight change in the Concat static helper method to reflect a less-boxed API.

Added

  • .NET 10.0 support
  • IndexOf, LastIndexOf, and Contains methods now support StringComparison

Changed

  • ValueStringBuilder.Concat uses params ReadOnlySpan<T> to reduce boxing and improve performance.

v2.4.1

25 Mar 06:51
fa0b4b7

Choose a tag to compare

Changed

  • Optimized Replace(char, char) (by @Joy-less in #241)
  • Optimized Replace(ReadOnlySpan<char>, ReadOnlySpan<char>) when both spans are length 1 (by @Joy-less in #241)

v2.4.0

21 Feb 22:02
e9b83c2

Choose a tag to compare

Added

Changed

Fixed

  • Fixed IndexOf and LastIndexOf allowing out-of-bounds index when the string to find is empty (by @Joy-less in #238)

v2.3.1

20 Feb 19:08
59151cc

Choose a tag to compare

Changed

  • Optimized when the internal buffer should grow. Fixed by @Aniobodo.

v2.3.0

16 Feb 10:43
dd39217

Choose a tag to compare

Added

  • Added Equals(ReadOnlySpan<char>, StringComparison) (by @Joy-less in #234)

Changed

  • Improved Equals(ReadOnlySpan<char>) (by @Joy-less in #234)
  • Added performance short-circuit when span is empty in Append(ReadOnlySpan<char>), AppendSpan(int), Insert(int, ReadOnlySpan<char>) in #233 (by @Joy-less)

v2.2.0

25 Jan 11:56
f3f4759

Choose a tag to compare

Added

  • Added TrimPrefix(ReadOnlySpan<char>, StringComparison) (by yours truly (@Joy-less) in #226)
  • Added TrimSuffix(ReadOnlySpan<char>, StringComparison) (also by yours truly (@Joy-less) in #226)
  • Added Insert(int, char) overload (by yours truly (@Joy-less) in #225)
  • Added Insert(int, Rune) overload (again by yours truly (@Joy-less) in #225)
  • Added Replace(Rune, Rune) overload (see yours truly (@Joy-less) in #225)
  • Improved Replace(scoped ReadOnlySpan<char>, scoped ReadOnlySpan<char>, int, int) fallback (achieved by yours truly (@Joy-less) in #225)

v2.1.0

14 Jan 08:16
77fc713

Choose a tag to compare

Added

  • Added Replace(Rune, Rune) overload
  • Added Replace(Rune, Rune, int, int) overload

v2.0.0

12 Jan 15:02
f3e42e8

Choose a tag to compare

This is the v2 release of the ValueStringBuilder. There aren't any noticeable breaking changes. Only old framework versions were removed to make further development easier. The API is the same (with new additions) as in v1.

Added

  • Added Append(Rune) overload
  • Added AppendJoin(Rune, IEnumerable<string?>) overload
  • Added AppendJoin<T>(Rune, IEnumerable<T>) overload

Removed

  • Support for net6.0 and net7.0 was removed.

Changed

  • Added OverloadResolutionPriority for Span overload for the ctor to keep the current behavior. Reported by [@nsentinel])(https://github.com/nsentinel) in #210.
  • Optimised AppendLine(scoped ReadOnlySpan<char>) by avoiding allocating a new string
  • Removed erroneous null check in AppendJoin<T>(ReadOnlySpan<char>, IEnumerable<T>)