public ArraySegment <byte> ReadNumberSegment() { SkipWhiteSpace(); var initialOffset = offset; for (int i = offset; i < bytes.Length; i++) { if (!NumberConverter.IsNumberRepresentation(bytes[i])) { offset = i; goto END; } } offset = bytes.Length; END: return(new ArraySegment <byte>(bytes, initialOffset, offset - initialOffset)); }
public ArraySegment <byte> ReadNumberSegment() { SkipWhiteSpace(); var initialOffset = _offset; for (var i = _offset; i < _bytes.Length; i++) { if (!NumberConverter.IsNumberRepresentation(_bytes[i])) { if (NumberConverter.IsENotation(_bytes[i]) && (i + 1) < _bytes.Length && NumberConverter.IsNumberRepresentation(_bytes[i + 1])) { i++; continue; } _offset = i; goto END; } } _offset = _bytes.Length; END: return(new ArraySegment <byte>(_bytes, initialOffset, _offset - initialOffset)); }