C#如何在Razor Page中获取指定数值范围的枚举(Enum)值
实现方法
完全可以实现,你可以通过LINQ对枚举集合做筛选后再遍历,操作如下:
- 先确认Razor页面引入LINQ命名空间,没有的话在页面顶部加:
@using System.Linq
- 修改循环代码,将枚举值转为int后做区间判断,示例代码如下:
@foreach (MessageCategory category in Enum.GetValues(typeof(MessageCategory)) .Cast<MessageCategory>() .Where(c => (int)c > 1000 && (int)c < 2000)) { <!-- 此处编写你的HTML业务代码 --> <div>枚举项名称:@category.ToString(),对应数值:@((int)category)</div> }
代码说明
Enum.GetValues返回的是弱类型的枚举数组,通过Cast<MessageCategory>转为强类型的枚举集合方便后续操作- Where条件中将枚举项强转为int类型,和你指定的数值区间做比较,过滤出符合要求的项
如果你的区间需要包含边界值(比如包含1000和2000),把判断条件调整为(int)c >= 1000 && (int)c <= 2000即可。
内容的提问来源于stack exchange,提问作者niki tmb
相关产品推荐
相关产品推荐

