接受Enum比较的方法

时间:2014-08-08 02:04:00

标签: c# enums

我确信这可能已被问过,但我似乎找不到合适的答案......可能只是使用了错误的搜索字词。无论如何,我有以下代码;

if (e.Menu.Id.Equals(SchedulerMenuItemId.AppointmentMenu) ||
    e.Menu.Id.Equals(SchedulerMenuItemId.AppointmentDependencyMenu))
{ ... }

对我来说似乎有点多余/重复。我不能使用按位OR,因为枚举未标记为Flag。我想这是因为定义了71个枚举值,这有点超出了Flag选项......

我可能会做一个转换,并让案件“落空”,这可能会更清洁......

是否还有其他方法可以进行上述比较(考虑到可扩展性和可读性),它可能不仅仅是2次比较。

1 个答案:

答案 0 :(得分:6)

您可以随时使用LINQ

var enums = new[]
        {
            SchedulerMenuItemId.AppointmentMenu
            SchedulerMenuItemId.AppointmentDependencyMenu
        };

if(enums.Any(x => (int)x == e.Menu.Id)) { }