private void SetCombineAndStore(SetOperation operation, IEnumerable <T> other) { var redisTempSet = new RedisSet <T>(database, Guid.NewGuid().ToString()); try { redisTempSet.Add(other); SetCombineAndStore(operation, redisTempSet); } finally { redisTempSet.Clear(); } }
public void SymmetricExceptWith(IEnumerable <T> other) { if (other == null) { throw new ArgumentNullException("other"); } var otherSet = new RedisSet <T>(database, Guid.NewGuid().ToString()); try { otherSet.Add(other); SymmetricExceptWith(otherSet); } finally { otherSet.Clear(); } }
public void SymmetricExceptWith(RedisSet <T> other) { if (other == null) { throw new ArgumentNullException("other"); } var intersectedSet = new RedisSet <T>(database, Guid.NewGuid().ToString()); try { SetCombineAndStore(SetOperation.Intersect, intersectedSet, this, other); SetCombineAndStore(SetOperation.Union, other); SetCombineAndStore(SetOperation.Difference, intersectedSet); } finally { intersectedSet.Clear(); } }