예제 #1
0
 /// <summary>
 /// Performs a "union" of two sets, where all the elements
 /// in both are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
 /// The return value is a <c>Clone()</c> of one of the sets (<c>a</c> if it is not <c>null</c>) with elements of the other set
 /// added in.  Neither of the input sets is modified by the operation.
 /// </summary>
 /// <param name="a">A set of elements.</param>
 /// <param name="b">A set of elements.</param>
 /// <returns>A set containing the union of the input sets.  <c>null</c> if both sets are <c>null</c>.</returns>
 public static Set Union(Set a, Set b)
 {
     if (a == null && b == null)
     {
         return(null);
     }
     else if (a == null)
     {
         return((Set)b.Clone());
     }
     else if (b == null)
     {
         return((Set)a.Clone());
     }
     else
     {
         return(a.Union(b));
     }
 }
예제 #2
0
 /// <summary>
 /// Performs an "exclusive-or" of the two sets, keeping only the elements that
 /// are in one of the sets, but not in both.  The original sets are not modified
 /// during this operation.  The result set is a <c>Clone()</c> of one of the sets
 /// (<c>a</c> if it is not <c>null</c>) containing
 /// the elements from the exclusive-or operation.
 /// </summary>
 /// <param name="a">A set of elements.</param>
 /// <param name="b">A set of elements.</param>
 /// <returns>A set containing the result of <c>a ^ b</c>.  <c>null</c> if both sets are <c>null</c>.</returns>
 public static Set ExclusiveOr(Set a, Set b)
 {
     if (a == null && b == null)
     {
         return(null);
     }
     else if (a == null)
     {
         return((Set)b.Clone());
     }
     else if (b == null)
     {
         return((Set)a.Clone());
     }
     else
     {
         return(a.ExclusiveOr(b));
     }
 }
예제 #3
0
		/// <summary>
		/// Performs a "union" of two sets, where all the elements
		/// in both are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
		/// The return value is a <c>Clone()</c> of one of the sets (<c>a</c> if it is not <c>null</c>) with elements of the other set
		/// added in.  Neither of the input sets is modified by the operation.
		/// </summary>
		/// <param name="a">A set of elements.</param>
		/// <param name="b">A set of elements.</param>
		/// <returns>A set containing the union of the input sets.  <c>null</c> if both sets are <c>null</c>.</returns>
		public static Set Union(Set a, Set b)
		{
			if (a == null && b == null)
				return null;
			else if(a == null)
				return (Set)b.Clone();
			else if(b == null)
				return (Set)a.Clone();
			else
				return a.Union(b);
		}
예제 #4
0
		/// <summary>
		/// Performs an "exclusive-or" of the two sets, keeping only the elements that
		/// are in one of the sets, but not in both.  The original sets are not modified
		/// during this operation.  The result set is a <c>Clone()</c> of one of the sets
		/// (<c>a</c> if it is not <c>null</c>) containing
		/// the elements from the exclusive-or operation.
		/// </summary>
		/// <param name="a">A set of elements.</param>
		/// <param name="b">A set of elements.</param>
		/// <returns>A set containing the result of <c>a ^ b</c>.  <c>null</c> if both sets are <c>null</c>.</returns>
		public static Set ExclusiveOr(Set a, Set b)
		{
			if(a == null && b == null)
				return null;
			else if(a == null)
				return (Set)b.Clone();
			else if(b == null)
				return (Set)a.Clone();
			else
				return a.ExclusiveOr(b);
		}