public void Execute(int index) { var key = sharedIndices[index]; int count = 0; if (!entityCountBySharedIndex.TryGetValue(key, out count)) { return; } //create new indices for (int i = 0; i < count; i++) { var contains = indicesInSquadBySharedIndices.ContainsValueForKey(key, i); if (!contains) { newIndicesBySharedIndex.Add(key, i); } } }