if (Math.Max(thisString.Length, otherString.Length) > Math.Pow(2, 31)) throw new ArgumentException("String too long");
Looking at the code I see right away that this is ported from some other language over to C#. It’s quite easy to optimize it…. how would you do it?