将枚举转换为IEnumerable <SelectListItem>问题

mct*_*una 1 .net c# ienumerable enums

我正在尝试使用枚举来提供我的Dropdownlist但我无法将其转换为 IEnumerable<SelectListItem>

这是代码:

EducationStatusEnum[] values = (EducationStatusEnum[])Enum
                                     .GetValues(typeof(EducationStatusEnum));

var list = from value in values
     select new { Value = ((int)value).ToString() , Text = value.ToString()};


studentViewModel.LastEducationStatusList = list;
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

Cannot implicitly convert type 'System.Collections.Generic .IEnumerable<AnonymousType#1>' to 'System.Collections.Generic .IEnumerable<System.Web.Mvc.SelectListItem>'. An explicit conversion exists (are you missing a cast?)

我至少走在正确的道路上吗?还有其他转换方式吗?

Pet*_*iho 5

没有更完整的代码示例,很难确定.但我希望这对你有用:

EducationStatusEnum[] values = (EducationStatusEnum[])Enum
                                     .GetValues(typeof(EducationStatusEnum));

var list = from value in values
     select new SelectListItem()
     {
         Value = ((int)value).ToString(),
         Text = value.ToString()
     };

studentViewModel.LastEducationStatusList = list;
Run Code Online (Sandbox Code Playgroud)

换句话说,从错误消息中看来,这里唯一的问题是枚举类型与预期的枚举类型不匹配LastEducationStatusList.错误消息说它正在尝试分配IEnumerable<System.Web.Mvc.SelectListItem>,因此通过使用SelectListItemLINQ查询中的实际类型而不是匿名类型,它应该工作.