Jerad Rose Jerad Rose - 1 year ago 103
C# Question

Value is in enum list

I have a fairly basic question: How can I check if a given value is contained in a list of enum values?

For example, I have this enum:

public enum UserStatus

Now I want to check if
status in (Unverified, Active)

I know this works:

bool ok = status == UserStatus.Unverified || status == UserStatus.Active;

But there has to be a more elegant way to write this.

The topic of this queston is very similar, but that's dealing with flags enums, and this is not a flags enum.

Thanks in advance.

Answer Source

Here is an extension method that helps a lot in a lot of circumstances.

public static class Ext
    public static bool In<T>(this T val, params T[] values) where T : struct
        return values.Contains(val);


Console.WriteLine(1.In(2, 1, 3));
Console.WriteLine(1.In(2, 3));
Console.WriteLine(UserStatus.Active.In(UserStatus.Removed, UserStatus.Banned));
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download