diff --git a/src/Bolt.Common.Extensions.UnitTests/StringExtensionTests.cs b/src/Bolt.Common.Extensions.UnitTests/StringExtensionTests.cs
index 16babec..602779f 100644
--- a/src/Bolt.Common.Extensions.UnitTests/StringExtensionTests.cs
+++ b/src/Bolt.Common.Extensions.UnitTests/StringExtensionTests.cs
@@ -100,5 +100,11 @@ public void IsEndWithTest()
var sut = "Hello world";
sut.IsEndWith("WORLD").ShouldBeTrue();
}
+
+ [Theory]
+ [InlineData("", " cups", "")]
+ [InlineData("12", " cups", "12 cups")]
+ public void AppendIfNotEmpty(string source, string ending, string result) =>
+ source.AppendIfNotEmpty(ending).ShouldBe(result);
}
}
\ No newline at end of file
diff --git a/src/Bolt.Common.Extensions/StringExtensions.cs b/src/Bolt.Common.Extensions/StringExtensions.cs
index 4a05785..2cf2307 100644
--- a/src/Bolt.Common.Extensions/StringExtensions.cs
+++ b/src/Bolt.Common.Extensions/StringExtensions.cs
@@ -214,5 +214,15 @@ public static string FormatWith(this string source, params object[] args)
{
return string.Format(source, args);
}
+
+ ///
+ /// Appends an ending to a string if the source string is not empty
+ ///
+ ///
+ ///
+ ///
+ [DebuggerStepThrough]
+ public static string AppendIfNotEmpty(this string source, string ending) =>
+ source.IsEmpty() ? source : string.Concat(source, ending);
}
}