我有一个使用组合框的用户控件,该组合框的源绑定到Enum
类型的IEnumerable
(我有几种不同类型的用户定义枚举要在用户控件中使用,因此在我的用户控件的支持代码中使用泛型IEnumerable<Enum>
)。但是,当我尝试使用用户控件在项的支持代码中创建IEnumerable
列表时,我无法将我自己的枚举类型的IEnumerable
转换为泛型枚举IEnumerable
。
出现以下错误:
无法将MyEnumType[]
类型的对象转换为System.Enum[]
类型
当我尝试转换为Enum[]
时。
导致此错误的代码是:
public IEnumerable<Enum> MyEnums { get { return (Enum[])Enum.GetValues(typeof(MySpecificEnumType)); } }
我应该如何从枚举型别的清单转换成泛型Enum
型别的清单?或者我应该在使用者控件的支援程式码中使用不同型别的IEnumerable
?
1条答案
按热度按时间yruzcnhs1#
如果你真的希望得到
IEnumerable<Enum>
,你可以使用Cast
扩展方法: