user977154
user977154

Reputation: 1095

How to use an OR statement within a LINQ Where statment

Basically, I want to see if a given string is contained in one of the four database entries. Example of what I want done:

if (!String.IsNullOrEmpty(searchTagName))
{

   Articles = Articles.Where(b => b.Tag1.Contains(searchTagName));
   OR
   Articles = Articles.Where(b => b.Tag2.Contains(searchTagName));
   OR
   Articles = Articles.Where(b => b.Tag3.Contains(searchTagName));
   OR
   Articles = Articles.Where(b => b.Tag4.Contains(searchTagName));
}

How can I write in a proper

statement?

Upvotes: 0

Views: 61

Answers (2)

Chris Shao
Chris Shao

Reputation: 8231

Like this:

if (!String.IsNullOrEmpty(searchTagName))
{
   Articles = Articles.Where(b => 
                    b.Tag1.Contains(searchTagName) 
                 || b.Tag2.Contains(searchTagName) 
                 || b.Tag3.Contains(searchTagName) 
                 || b.Tag4.Contains(searchTagName));
}

Upvotes: 2

Paweł Bejger
Paweł Bejger

Reputation: 6366

You should create one lambda expression out of it:

    if (!String.IsNullOrEmpty(searchTagName))
    {
       Articles = Articles.Where(b => 
                b.Tag1.Contains(searchTagName) ||
                b.Tag2.Contains(searchTagName) || 
                b.Tag3.Contains(searchTagName) ||
                b.Tag4.Contains(searchTagName));
    }

Upvotes: 6

Related Questions