/// <summary> /// 2つの集合の和集合を取る /// </summary> /// <param name="set1">集合1</param> /// <param name="set2">集合2</param> /// <returns>集合1∪集合2</returns> public static FiniteSet <TEnum> Union <TEnum>(this FiniteSet <TEnum> set1, FiniteSet <TEnum> set2) where TEnum : Enum { var retSet = new FiniteSet <TEnum>(set1); retSet.UnionWith(set2); retSet.Update(); return(retSet); }
/// <summary> /// 2つの集合の対称差(排他的論理和)を取る /// </summary> /// <param name="set1">集合1</param> /// <param name="set2">集合2</param> /// <returns>集合1△集合2</returns> public static FiniteSet <TEnum> SymmetricExcept <TEnum>(this FiniteSet <TEnum> set1, FiniteSet <TEnum> set2) where TEnum : Enum { var retSet = new FiniteSet <TEnum>(set1); retSet.SymmetricExceptWith(set2); retSet.Update(); return(retSet); }