public IEnumerable <Product> Filter(IEnumerable <Product> products, IProductSpecification specification)
 {
     foreach (var item in products)
     {
         if (specification.isSatisfied(item))
         {
             yield return(item);
         }
     }
 }
示例#2
0
        public Products Filter(IProductSpecification specification)
        {
            var result = new Products();

            foreach (var item in list)
            {
                var product = (Product)item;
                if (specification.SatisfiedBy(product))
                {
                    result.Add(product);
                }
            }
            return(result);
        }
 public AndSpecification(IProductSpecification spec1, IProductSpecification spec2)
 {
     this.spec1 = spec1;
     this.spec2 = spec2;
 }