public XorSpecification(Specification <T> left, Specification <T> right) { _right = right; _left = left; }
public IEnumerable <T> Retrieve(Specification <T> specification) { // TODO: reconsider backing store -- this type casting is a slow operation return(BackingStore.Select(x => Convert.ChangeType(x.Value, x.Type)).OfType <T>().Where(specification)); }