我有一个用户控件,它使用一个组合框,其源被绑定到IEnumerable
类型Enum
(我有几种不同类型的用户定义的枚举用于用户控件,所以在我的用户控件的支持代码中使用通用IEnumerable<Enum>
。但是,当我尝试使用用户控件在项目的支持代码中创建IEnumberable
列表时,我无法将我自己的枚举类型的IEnumerable
转换为通用枚举{{1} }。
我收到以下错误:
当我尝试转换为
IEnumerable
时,无法将MyEnumType[]
类型的对象转换为System.Enum[]
类型。给出此错误的代码是:
Enum[]
如何将枚举类型列表转换为通用public IEnumberable<Enum> MyEnums { get { return (Enum[])Enum.GetValues(typeof(MySpecificEnumType)); } }
类型列表?或者我应该在用户控件的支持代码中使用不同类型的Enum
吗?
答案 0 :(得分:0)
如果您真的希望得到IEnumerable<Enum>
,可以使用Cast
扩展方法:
return Enum.GetValues(typeof(MySpecificEnumType)).Cast<Enum>();