public static int GetExpectedSizeInBytes(byte[] content, bool includeMarkerSize = true) { var numberOfElements = GetExpectedNumberOfFields(content); var markerSize = SizeOfMarkerInBytes(content); int length = 0; if (includeMarkerSize) { length += markerSize; } var bytesWithoutMarker = content.Skip(markerSize).ToArray(); for (int i = 0; i < numberOfElements; i++) { var itemLength = PackStream.GetLengthOfFirstItem(bytesWithoutMarker); bytesWithoutMarker = bytesWithoutMarker.Skip(itemLength).ToArray(); length += itemLength; } return(length); }
public static int GetLengthInBytes(byte[] bytes, bool includeMarkerSize) { var numberOfElements = GetNumberOfElements(bytes); var markerSize = GetSizeOfMarkerInBytes(numberOfElements); int length = 0; if (includeMarkerSize) { length += markerSize; } var bytesWithoutMarker = bytes.Skip(markerSize).ToArray(); for (int i = 0; i < numberOfElements; i++) { var itemLength = PackStream.GetLengthOfFirstItem(bytesWithoutMarker); bytesWithoutMarker = bytesWithoutMarker.Skip(itemLength).ToArray(); length += itemLength; } return(length); }