public void Deserialize(byte[] data) { if (data == null) { throw new ArgumentNullException("Data must be non-empty"); } if ((data.Length % MultiStreamHeaderItem.Size) != 0) { throw new ArgumentException("Data must be aligned with GZipMultiStreamHeaderItem.Size"); } int count = data.Length / MultiStreamHeaderItem.Size; for (int i = 0; i < count; i++) { MultiStreamHeaderItem item = new MultiStreamHeaderItem(); byte[] buffer = new byte[MultiStreamHeaderItem.Size]; // TODO: Get rid of copying Array.Copy(data, i * MultiStreamHeaderItem.Size, buffer, 0, MultiStreamHeaderItem.Size); item.Deserialize(buffer); Items.Add(item); } }
public override bool Equals(object obj) { if (obj == null || GetType() != obj.GetType()) { return(false); } MultiStreamHeaderItem anotherItem = (MultiStreamHeaderItem)obj; return(Length == anotherItem.Length); }