public IEnumerable<Product> GetProductsNotInGroceries(IGroceryRepository repo) { List<Product> selectedProducts; if (!repo.GetGroceries().Any()) { selectedProducts = repo.GetProducts().ToList(); } else { var groceries = repo.GetGroceries().Select(p => p.ProductId).ToArray(); var products = repo.GetProducts().Select(p => p.Id).ToArray(); var unselected = products.Except(groceries); selectedProducts = repo.GetProducts().Where(p => unselected.Contains(p.Id)).ToList(); } return selectedProducts; }