score:0

you could query first the any and store that in a enumerable and the check if the count is bigger then 0

score:3

What's about:

static class Extension   
{
    public static bool Contains(this IEnumerable<object> source, object value)
    {
        foreach (object o in source)
            if (o.Equals(value)) return true;

        return false;
    }
}


var mylist = keywordsArray.ToList();

matchingProducts = products.Where(p => mylist.Exists(k => p.ProdDesc.Contains(k) ||
                                                          p.ProdKeywords.Contains(k));

Related Articles