Пример #1
0
            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);
            }
Пример #2
0
            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);
            }