I have the following basic entities:

```
public class Basket
{
    public List<Product> Products {get;set;}
}

public class Product
{
    public string Name {get;set;}
    public decimal Price {get;set;}
}

```

And I want to get a list of all products in a basket that are below a fixed price. Should the logic for this go in the `Basket`, like so:

```
public class Basket
{
    public List<Product> Products {get;set;}
    public List<Product> CheapProducts
    {
        get { return Products.Where(p => p.Price < 5).ToList(); }
    }
}

```

Or should it go in a service class, `ProductFilterer`, which would take the entire list of products as a parameter and would return a filtered list of products. Or maybe it should just go straight into the method of the calling class?

Or something else? What is the best practice for this?