我确信这可能已被问到,但我似乎无法找到正确的答案......可能只是使用了错误的搜索条件.无论如何,我有以下代码;
if (e.Menu.Id.Equals(SchedulerMenuItemId.AppointmentMenu) ||
e.Menu.Id.Equals(SchedulerMenuItemId.AppointmentDependencyMenu))
{ ... }
Run Code Online (Sandbox Code Playgroud)
对我来说似乎有点多余/重复.我不能使用按位OR,因为枚举没有标记为Flag.我想这是因为定义了71个枚举值,这有点超出了Flag选项......
可能我可以做一个转换,并让案件"通过",这可能是一个更清洁......
有没有其他方式进行比较,如上面的(考虑到可扩展性和可读性),它可能不仅仅是2次比较.
您可以随时使用LINQ
var enums = new[]
{
SchedulerMenuItemId.AppointmentMenu
SchedulerMenuItemId.AppointmentDependencyMenu
};
if(enums.Any(x => (int)x == e.Menu.Id)) { }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |