C# 获取枚举集合的其中两种方式

可能会在下面的场景中需要循环枚举值

1、为方便前端展示,将返回的数据集合中的枚举名称显示出来。这样前端不需要做任何处理,直接展示即可。

2、向前端输出枚举集合,用于数据筛选,并且前端不需要维护这些集合。后端有修改也不需要通知前端。

方式一:

var dict = new Dictionary<int, string>();
var values = Enum.GetValues(typeof(OperationType));
foreach (var item in values)
{
    dict.Add(item.GetHashCode(), item.ToString());
}
return Task.FromResult(dict);

方式二:

var dict = new Dictionary<int, string>();
var fields = typeof(OperationType).GetFields();
for (int i = 1; i < fields.Length; i++)//下标从1开始
{
    var name = fields[i].Name;
    var value = Enum.Parse(typeof(OperationType), name);
    dict.Add(value.GetHashCode(), name);
}
return Task.FromResult(dict);

最后,顺便提下在开发过程中经时常会用中文作为枚举名称,这样就免去使用 Attribute 还需要再取一次的操作,通过 .ToString() 就能获取枚举名称。

posted @ 2019-03-15 10:09  Jöhan  阅读(839)  评论(0编辑  收藏  举报