StringBuilderExtensions
using System.Text;
namespace Relativity.DataTransfer.Nodes.Internal.Helpers
{
internal static class StringBuilderExtensions
{
internal static string CutOffBy(this StringBuilder stringBuilder, char cuttingChar)
{
TrimStart(stringBuilder, cuttingChar);
string result;
for (int i = 0; i < stringBuilder.Length; i++) {
if (cuttingChar == stringBuilder[i]) {
result = stringBuilder.ToString(0, i);
stringBuilder.Remove(0, i + 1);
return result;
}
}
result = stringBuilder.ToString();
stringBuilder.Remove(0, result.Length);
return result;
}
private static void TrimStart(StringBuilder stringBuilder, char trimChar)
{
int num = LastIndexOfBeforeOtherChar(stringBuilder, trimChar);
if (num >= 0)
stringBuilder.Remove(0, num + 1);
}
private static int LastIndexOfBeforeOtherChar(StringBuilder stringBuilder, char char)
{
for (int i = 0; i < stringBuilder.Length; i++) {
if (char != stringBuilder[i])
return i - 1;
}
return stringBuilder.Length - 1;
}
}
}