コード例 #1
0
        /// <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);
                    }
                }
            }
        }
コード例 #2
0
		/// <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);
					}
				}
			}
        }