private string RemainderToString()
{
var result = new StringBuilder();
if (!_useEnumerator)
{
if (_isReversed)
{
for (int i = 0; i <= _startIdx; i++)
{
result.Append(_tokenParts[i]);
}
}
else
{
for (int i = _startIdx; i < _tokenParts.Length; i++)
{
result.Append(_tokenParts[i]);
}
}
}
else
{
try
{
while (_charEnumerator.MoveNext())
{
result.Append(_charEnumerator.Current);
}
}
// ReSharper disable EmptyGeneralCatchClause
catch (Exception)
// ReSharper restore EmptyGeneralCatchClause
{
// _charEnumerator will return null reference exception when done ;)
}
}
MoveStartIndex(result.Length);
_hasMoreOps = false;
return result.ToString();
}