public static RegisterSet Union(RegisterSet s1, RegisterSet s2) { RegisterSet result = new RegisterSet(); foreach (Register reg in s1.registers) result.registers.Add(reg); foreach (Register reg in s2.registers) { if (!result.Contains(reg)) result.registers.Add(reg); } return result; }