Class ByteString (3.23.0)

public sealed class ByteString : IEnumerable<byte>, IEnumerable, IEquatable<ByteString>

Immutable array of bytes.

Inheritance

object > ByteString

Namespace

Google.Protobuf

Assembly

Google.Protobuf.dll

Properties

Empty

public static ByteString Empty { get; }

Returns an empty ByteString.

Property Value
Type Description
ByteString

IsEmpty

public bool IsEmpty { get; }

Returns true if this byte string is empty, false otherwise.

Property Value
Type Description
bool

this[int]

public byte this[int index] { get; }

Returns the byte at the given index.

Parameter
Name Description
index int
Property Value
Type Description
byte

Length

public int Length { get; }

Returns the length of this ByteString in bytes.

Property Value
Type Description
int

Memory

public ReadOnlyMemory<byte> Memory { get; }

Provides read-only access to the data of this ByteString. No data is copied so this is the most efficient way of accessing.

Property Value
Type Description
ReadOnlyMemorybyte

Span

public ReadOnlySpan<byte> Span { get; }

Provides read-only access to the data of this ByteString. No data is copied so this is the most efficient way of accessing.

Property Value
Type Description
ReadOnlySpanbyte

Methods

CopyFrom(params byte[])

public static ByteString CopyFrom(params byte[] bytes)

Constructs a ByteString from the given array. The contents are copied, so further modifications to the array will not be reflected in the returned ByteString. This method can also be invoked in ByteString.CopyFrom(0xaa, 0xbb, ...) form which is primarily useful for testing.

Parameter
Name Description
bytes byte
Returns
Type Description
ByteString

CopyFrom(byte[], int, int)

public static ByteString CopyFrom(byte[] bytes, int offset, int count)

Constructs a ByteString from a portion of a byte array.

Parameters
Name Description
bytes byte
offset int
count int
Returns
Type Description
ByteString

CopyFrom(ReadOnlySpan<byte>)

public static ByteString CopyFrom(ReadOnlySpan<byte> bytes)

Constructs a ByteString from a read only span. The contents are copied, so further modifications to the span will not be reflected in the returned ByteString.

Parameter
Name Description
bytes ReadOnlySpanbyte
Returns
Type Description
ByteString

CopyFrom(string, Encoding)

public static ByteString CopyFrom(string text, Encoding encoding)

Creates a new ByteString by encoding the specified text with the given encoding.

Parameters
Name Description
text string
encoding Encoding
Returns
Type Description
ByteString

CopyFromUtf8(string)

public static ByteString CopyFromUtf8(string text)

Creates a new ByteString by encoding the specified text in UTF-8.

Parameter
Name Description
text string
Returns
Type Description
ByteString

CopyTo(byte[], int)

public void CopyTo(byte[] array, int position)

Copies the entire byte array to the destination array provided at the offset specified.

Parameters
Name Description
array byte
position int

CreateCodedInput()

public CodedInputStream CreateCodedInput()

Creates a CodedInputStream from this ByteString's data.

Returns
Type Description
CodedInputStream

Equals(ByteString)

public bool Equals(ByteString other)

Compares this byte string with another.

Parameter
Name Description
other ByteString

The ByteString to compare this with.

Returns
Type Description
bool

true if other refers to an equal byte string; false otherwise.

Equals(object)

public override bool Equals(object obj)

Compares this byte string with another object.

Parameter
Name Description
obj object

The object to compare this with.

Returns
Type Description
bool

true if obj refers to an equal ByteString; false otherwise.

Overrides

FromBase64(string)

public static ByteString FromBase64(string bytes)

Constructs a ByteString from the Base64 Encoded String.

Parameter
Name Description
bytes string
Returns
Type Description
ByteString

FromStream(Stream)

public static ByteString FromStream(Stream stream)

Constructs a ByteString from data in the given stream, synchronously.

Parameter
Name Description
stream Stream

The stream to copy into a ByteString.

Returns
Type Description
ByteString

A ByteString with content read from the given stream.

Remarks

If successful, stream will be read completely, from the position at the start of the call.

FromStreamAsync(Stream, CancellationToken)

public static Task<ByteString> FromStreamAsync(Stream stream, CancellationToken cancellationToken = default)

Constructs a ByteString from data in the given stream, asynchronously.

Parameters
Name Description
stream Stream

The stream to copy into a ByteString.

cancellationToken CancellationToken

The cancellation token to use when reading from the stream, if any.

Returns
Type Description
TaskByteString

A ByteString with content read from the given stream.

Remarks

If successful, stream will be read completely, from the position at the start of the call.

GetEnumerator()

public IEnumerator<byte> GetEnumerator()

Returns an iterator over the bytes in this ByteString.

Returns
Type Description
IEnumeratorbyte

An iterator over the bytes in this object.

GetHashCode()

public override int GetHashCode()

Returns a hash code for this object. Two equal byte strings will return the same hash code.

Returns
Type Description
int

A hash code for this object.

Overrides

ToBase64()

public string ToBase64()

Converts this ByteString into a standard base64 representation.

Returns
Type Description
string

A base64 representation of this ByteString.

ToByteArray()

public byte[] ToByteArray()

Converts this ByteString into a byte array.

Returns
Type Description
byte

A byte array with the same data as this ByteString.

Remarks

The data is copied - changes to the returned array will not be reflected in this ByteString.

ToString(Encoding)

public string ToString(Encoding encoding)

Converts this ByteString into a string by applying the given encoding.

Parameter
Name Description
encoding Encoding

The encoding to use to decode the binary data into text.

Returns
Type Description
string

The result of decoding the binary data with the given decoding.

Remarks

This method should only be used to convert binary data which was the result of encoding text with the given encoding.

ToStringUtf8()

public string ToStringUtf8()

Converts this ByteString into a string by applying the UTF-8 encoding.

Returns
Type Description
string

The result of decoding the binary data with the given decoding.

Remarks

This method should only be used to convert binary data which was the result of encoding text with UTF-8.

WriteTo(Stream)

public void WriteTo(Stream outputStream)

Writes the entire byte array to the provided stream

Parameter
Name Description
outputStream Stream

Operators

operator ==(ByteString, ByteString)

public static bool operator ==(ByteString lhs, ByteString rhs)

Compares two byte strings for equality.

Parameters
Name Description
lhs ByteString

The first byte string to compare.

rhs ByteString

The second byte string to compare.

Returns
Type Description
bool

true if the byte strings are equal; false otherwise.

operator !=(ByteString, ByteString)

public static bool operator !=(ByteString lhs, ByteString rhs)

Compares two byte strings for inequality.

Parameters
Name Description
lhs ByteString

The first byte string to compare.

rhs ByteString

The second byte string to compare.

Returns
Type Description
bool

false if the byte strings are equal; true otherwise.