diff --git a/X10D/src/StringExtensions.cs b/X10D/src/StringExtensions.cs
index 93920a1..aa05785 100644
--- a/X10D/src/StringExtensions.cs
+++ b/X10D/src/StringExtensions.cs
@@ -265,7 +265,27 @@
/// A whose characters are that of in reverse order.
public static string Reverse(this string value)
{
- return string.Join(string.Empty, Enumerable.Reverse(value));
+ if (value is null)
+ {
+ throw new ArgumentNullException(nameof(value));
+ }
+
+ if (value.Length == 1)
+ {
+ return value;
+ }
+
+ unsafe
+ {
+ var array = stackalloc char[value.Length];
+
+ for (var index = 0; index < value.Length; index++)
+ {
+ array[index] = value[value.Length - index - 1];
+ }
+
+ return new string(array);
+ }
}
///