public unsafe void Execute(int index)
            {
                var chunk            = Chunks[index].m_Chunk;
                var chunkChangeFlags = ChunkChangeFlags[index];
                var baseIndex        = Offsets[index];

                var archetype = chunk->Archetype;
                var componentIndexInArchetype = ChunkDataUtility.GetIndexInTypeArray(archetype, ComponentTypeIndex);
                var componentBuffer           = (TComponent *)(ChunkUtility.GetBuffer(chunk) + archetype->Offsets[componentIndexInArchetype]);

                for (var i = 0; i < chunk->Count; ++i)
                {
                    Entities[baseIndex + i] = new EntityInChunkWithComponent <TComponent>
                    {
                        EntityInChunk = new EntityInChunk {
                            Chunk = chunk, IndexInChunk = i
                        },
                        Component        = componentBuffer[i],
                        ChunkChangeFlags = chunkChangeFlags
                    };
                }
            }
 public int Compare(EntityInChunkWithComponent <TComponent> x, EntityInChunkWithComponent <TComponent> y)
 {
     return(x.Component.CompareTo(y.Component));
 }