我的枚举列表中有以下项目
public enum Role
{
ED=1,
CPDHEAD=2,
CPD=3,
CENTERMANAGER=4,
ACCOUNTSHEAD=5,
MANAGER=6,
TECHNICALHEAD=7,
SALESINDIVIDUAL=8,
ACCOUNTS=9,
TECHNICALINDIVIDUAL=10
}
如何将TechnicalHead
和TechnicalIndividual
值转换为List<int>
这是我尝试过但它返回枚举角色的所有值
List<int> _empRolelId = Enum.GetValues(typeof(EnumClass.Role))
.Cast<int>()
.Select(x => Convert.ToInt32(x))
.ToList();
答案 0 :(得分:7)
您的枚举基础类型为int
,因此其项目可以明确地转换为int
:
var _empRolelId = new List<int>();
_empRolelId.Add((int)Role.TECHNICALHEAD);
_empRolelId.Add((int)Role.TECHNICALINDIVIDUAL);
或在初始化时构建列表:
var _empRoleId = new List<int>
{
(int)Role.TECHNICALHEAD,
(int)Role.TECHNICALINDIVIDUAL
};
答案 1 :(得分:4)
您可以使用where子句进行过滤。此外,选择是多余的,因为您之前转换为int。
List<int> _empRolelId = Enum.GetValues(typeof(EnumClass.Role))
.Cast<int>()
.Where(x => x == (int)Rextester.Role.TECHNICALHEAD || x == (int)Rextester.Role.TECHNICALINDIVIDUAL)
.ToList();