private static bool runCommand(ref ReferenceSet <Key> set, Key[] domain, Command cmd) { switch (cmd.type) { case CmdType.CREATE: set = new ReferenceSet <Key>((int)cmd.arg); break; case CmdType.ADD: return(set.add(domain[(int)cmd.arg])); case CmdType.DEL: return(set.delete(domain[(int)cmd.arg])); case CmdType.CLEAR: set.clear(); break; case CmdType.UNION: set.unionWith(makeSet(domain, (IEnumerable <int>)cmd.arg)); break; case CmdType.INTERSECT: set.intersectWith(makeSet(domain, (IEnumerable <int>)cmd.arg)); break; } return(true); }