Filtering a list based on a value
users.Where(user =&gt; cond &amp;&amp; cond2) is equivalent to users.Where(user =&gt; cond).Where(user =&gt; cond2)

So you can do the following:

IEnumerable&lt;User&gt; resultStream = users;

if(searchTerm.Length &gt; 0)
    resultStream = resultStream.Where(user.Name == searchTerm);

switch(selectedValue){
    case 1: 
        return resultStream.ToList();
    case 2:
        return resultStream.Where(user=&gt;user.Street == "StreetA").ToList();
    case 3:
        return resultStream.Where(user=&gt;user.Street == "StreetB").ToList();
}