public List <HexagonGroup> GetNeighbours(PairedGroup pairedGroup, int commonCount) { List <HexagonGroup> neighbours = new List <HexagonGroup>(); for (int i = 0; i < _groupList.Count; i++) { if (_groupList[i].A.Equals(pairedGroup.Other) || _groupList[i].B.Equals(pairedGroup.Other) || _groupList[i].C.Equals(pairedGroup.Other)) { //already have 1 common, now counting pairs also int count = 1; for (int j = 0; j < pairedGroup.Pairs.Length; j++) { if (_groupList[i].A.Equals(pairedGroup.Pairs[j]) || _groupList[i].B.Equals(pairedGroup.Pairs[j]) || _groupList[i].C.Equals(pairedGroup.Pairs[j])) { count++; } } if (count == commonCount) { neighbours.Add(_groupList[i]); } } } return(neighbours); }
public List <PairedGroup> GetAllPairedGroups() { List <PairedGroup> pairedGroupList = new List <PairedGroup>(); for (int i = 0; i < _groupList.Count; i++) { PairedGroup pairedGroup = GetPairedGroup(_groupList[i]); if (pairedGroup != null) { pairedGroupList.Add(pairedGroup); } } return(pairedGroupList); }