/// <summary> /// Combine selections (Paolo, march 2007) /// </summary> /// <param name="otherSet">current selectionset</param> /// <param name="setOp">selection operation</param> /// <param name="resultSet">output selectionset</param> public void Combine(ISelectionSet otherSet, esriSetOperation setOp, out ISelectionSet resultSet) { resultSet = this as ISelectionSet; //esriSetUnion IEnumIDs eids = otherSet.IDs; for (int i = 0; i < otherSet.Count; i++) { int oid = eids.Next(); if (oids.Contains(oid)) //oid already in selectionset { if (setOp == esriSetOperation.esriSetDifference) { oids.Remove(oid); } if (setOp == esriSetOperation.esriSetSymDifference) { oids.Remove(oid); } } else //oid not in selectionset { if (setOp == esriSetOperation.esriSetUnion) { oids.Add(oid); } if (setOp == esriSetOperation.esriSetIntersection) { oids.Remove(oid); } if (setOp == esriSetOperation.esriSetSymDifference) { oids.Add(oid); } } } }