Linq To Sql按标签过滤产品

时间:2010-12-31 21:09:04

标签: linq linq-to-sql

我有以下代码:

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 :(得分:0)

不确定,但您是否尝试过使用Distinct()

类似于:

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

玩弄它。