You are implementing an ASP.NET application.
You add the following code segment.
public List<Person> GetNonSecretUsers()
{
string[] secretUsers = {“@secretUser”, “@admin”, “@root”};
List<Person> allpeople = GetAllPeople();
…
}
You need to add code to return a list of all Person objects except those with a UserId that is contained in the secretUsers list.
The resulting list must not contain duplicates.
Which code segment should you use?
A.
var secretPeople = (from p in allPeople
from u in secretUsers
where p.UserId == u
select p).Distinct();
return allPeople.Except(secretPeople);
B.
return from p in allPeople
from u in secretUsers
where p.UserId != u
select p;
C.
return (from p in allPeople
from u in secretUsers
where p.UserId != u
select p).Distinct();
D.
List<Person> people = new List<Person>(
from p in allPeople
from u in secretUsers
where p.UserId != u
select p);
return people.Distinct();