Refactoring a bunch of and statements Trying to refactor this code and can't seem to think of a way to make it cleaner. Type is  a property in my Person class.

foreach (var item in list)
{
    if (person.Type != PersonType.Employee &amp;&amp; person.Type != PersonType.Manager &amp;&amp; person.Type != PersonType.Contractor &amp;&amp; person.Type != PersonType.Executive)
    {
        DoSomething();
    }
}

public enum PersonType : int {
   Employee = 0,
   Manager = 1,
   Contractor = 2,
   President = 3,
   Executive = 4
}


I should note that there are other types in the PersonType class which I don't want to show.
This is such a perfect match for the Replace Conditional with Polymorphism Refactoring that it even looks as if it was specifically designed to demonstrate the Replace Conditional with Polymorphism Refactoring. I mean, the field it is basing its behavior on is even called Type!

interface Person { void DoSomething(); }

class PrivilegedPerson : Person {
    public void DoSomething() {
        // do something
    }
}

class UnprivilegedPerson : Person {
    public void DoSomething() {} // literally do nothing
}

class Employee   : UnprivilegedPerson {}
class Manager    : UnprivilegedPerson {}
class Contractor : UnprivilegedPerson {}
class President  : UnprivilegedPerson {}
class Executive  : UnprivilegedPerson {}