如何在IEF(C#)中将IEnumerable <myspecificenumtype>转换为通用IEnumerable <enum>

时间:2016-06-17 18:36:54

标签: c# wpf xaml enums

我有一个用户控件,它使用一个组合框,其源被绑定到IEnumerable类型Enum(我有几种不同类型的用户定义的枚举用于用户控件,所以在我的用户控件的支持代码中使用通用IEnumerable<Enum>。但是,当我尝试使用用户控件在项目的支持代码中创建IEnumberable列表时,我无法将我自己的枚举类型的IEnumerable转换为通用枚举{{1} }。

我收到以下错误:

  

当我尝试转换为IEnumerable时,无法将MyEnumType[]类型的对象转换为System.Enum[]类型。给出此错误的代码是:

Enum[]

如何将枚举类型列表转换为通用public IEnumberable<Enum> MyEnums { get { return (Enum[])Enum.GetValues(typeof(MySpecificEnumType)); } } 类型列表?或者我应该在用户控件的支持代码中使用不同类型的Enum吗?

1 个答案:

答案 0 :(得分:0)

如果您真的希望得到IEnumerable<Enum>,可以使用Cast扩展方法:

return Enum.GetValues(typeof(MySpecificEnumType)).Cast<Enum>();