public unsafe Wmo(byte[] data, Func<int, WmoGroup> groupFactory) { fixed (byte* p = data) { Chunks = ChunkCollector.CreateChunks(p, p + data.Length, CreateChunk); } Groups = Enumerable.Range(0, _mohd.GroupCount).Select(groupFactory).ToArray(); }