是否有BitConverter或其他支持.Net Core的类,我可以读取整数和其他值作为Big Endian编码?
我不需要编写一组辅助方法:
int GetBigEndianIntegerFromByteArray(byte[] data,int startIndex) { return (data[startIndex] << 24) | (data[startIndex + 1] << 16) | (data[startIndex + 2] << 8) | data[startIndex + 3]; }
解决方法
从.NET Core 2.1开始,在静态类System.Buffers.Binary.BinaryPrimitives中有一个统一的API
它包含ReadOnlySpan的API和原始类型的直接反字节序(short / ushort,int / uint,long / ulong)
private void GetBigEndianIntegerFromByteArray(ReadOnlySpan<byte> span,int offset) { return BinaryPrimitives.ReadInt32BigEndian(span.Slice(offset)); }
System.Buffers.Binary.BinaryPrimitives类是.NET Core 2.1的一部分,不需要NuGet包
此类还包含Try …方法