private EntityGroupData *GetCachedGroupData(uint hash, ComponentType *requiredTypes, int requiredCount) { NativeMultiHashMapIterator <uint> it; IntPtr grpPtr; if (!m_GroupLookup.TryGetFirstValue(hash, out grpPtr, out it)) { return(null); } do { var grp = (EntityGroupData *)grpPtr; if (ComponentType.CompareArray(grp->RequiredComponents, grp->RequiredComponentsCount, requiredTypes, requiredCount)) { return(grp); } } while (m_GroupLookup.TryGetNextValue(out grpPtr, ref it)); return(null); }