我确信这可能已被问过,但我似乎找不到合适的答案......可能只是使用了错误的搜索字词。无论如何,我有以下代码;
if (e.Menu.Id.Equals(SchedulerMenuItemId.AppointmentMenu) ||
e.Menu.Id.Equals(SchedulerMenuItemId.AppointmentDependencyMenu))
{ ... }
对我来说似乎有点多余/重复。我不能使用按位OR,因为枚举未标记为Flag
。我想这是因为定义了71个枚举值,这有点超出了Flag选项......
我可能会做一个转换,并让案件“落空”,这可能会更清洁......
是否还有其他方法可以进行上述比较(考虑到可扩展性和可读性),它可能不仅仅是2次比较。
答案 0 :(得分:6)
您可以随时使用LINQ
var enums = new[]
{
SchedulerMenuItemId.AppointmentMenu
SchedulerMenuItemId.AppointmentDependencyMenu
};
if(enums.Any(x => (int)x == e.Menu.Id)) { }