Coding Faster with the dotNetTips Utility: StringBuilder Extensions

Recently, I was looking at the source code for Entity Framework Core and found a few interesting extension methods for the StringBuilder class. So I moved the ones I liked to my open-source project called dotNetTips.Utility.Standard.Extensions and is part of the NuGet package too.

Appending Bytes

If you want to combine an array of byte values in StringBuilder, you can use the AppendBytes() extension method below.

var sb = new StringBuilder();
var byteArray = RandomData.GenerateByteArray(sizeInKb: 1);
sb.AppendBytes(byteArray);

Output

Here is the result of the above code.

0x644060FDE6231F9CFF37B93A73C70B3DA677512A3012AB766B2A07891A3F47EDB1F0

Appending Values

There are many times that values from a collection need to be combined into a delimited string. You can use the AppendValues() method as shown below.

var sb = new StringBuilder();
var values = RandomData.GenerateWords(count: 5, minLength: 5, maxLength: 7);
sb.AppendValues(",", values);

Output

Here is the result from the code above.

BgMes, oGsreY, kpcJ^, bAA]U, Jov`rE

This method is overloaded to accept the following types for the collection of strings: IEnumerable<string>, IEnumerable<T>.

Appending Values using an Action

If you want to combine values from a collection using a custom action which allows for more flexibility, then using ApendValues() as shown below will do the trick.

var sb = new StringBuilder();
var values = RandomData.GenerateCoordinateCollection<Coordinate>(count: 5);

sb.AppendValues(", ",values, (sb, person) =>
{
    sb.Append(person.X);
    sb.Append(ControlChars.Colon);
    sb.Append(person.Y);
});

Output

Here is the result from the code above.

1598221432:-705467152, -616323156:-1857438448, -1686969361:1572163353, 
-1328828514:-1887231033, 53532470:-120489468

Summary

Rock Your Code: Coding Standards for Microsoft .NET
Rock Your Code: Coding Standards for Microsoft .NET

I hope you will try these StringBuilder extension methods in your code. Just install the NuGet package and you are ready to go!

More information about the dotNetTips.Utility assemblies can be found in the latest edition of my coding standards book for Microsoft .NET!

 


Discover more from dotNetTips.com

Subscribe to get the latest posts sent to your email.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.