Linq To Sql Фильтрация товаров по тегам - PullRequest
0 голосов
/ 01 января 2011

У меня есть следующий код:

var tagarray = tags.Split(',');
var products = new List<Product>();
foreach(var tag in tagarray)
{
    if (!String.IsNullOrEmpty(tag))
    {
        products.AddRange(entities.Products.Where(p => p.Tags.Contains(tag)).ToList());
    }
}

, который выполняет эту работу, но добавляет дубликаты продуктов, если они соответствуют более чем одному тегу.Как я могу переписать запрос linq, чтобы исключить продукты, которые уже есть в списке.Я попытался добавить это к миксу:

private bool DoesProductAlreadyExist(List<Product> products, int id)
{
     return products.Exists(x => x.Id == id);
}

, но я получаю исключение, по сути говоря, выражение LINQ не распознает метод.Точка в правильном направлении будет принята с благодарностью.

1 Ответ

0 голосов
/ 01 января 2011

Не уверен, но вы пытались использовать Distinct()?

Аналогично:

products.AddRange(entities.Products.Where(p => p.Tags.Contains(tag)).Distinct().ToList());

Поиграйте с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...