【发布时间】:2015-07-21 04:24:54
【问题描述】:
我正在尝试从我的模型中过滤我的 enum 字段之一。这是我的enum的定义:
public enum ProjectDifficulty
{
Medium,
High,
[Display(Name = "Very High")]
VeryHigh,
Complex
}
但我无法得到结果;我看到了这个错误:
无法从“
System.Linq.IQueryable<Finder.Models.ProjectDifficulty>”转换为“System.Collections.Generic.IEnumerable<string>”
我的控制器包含以下代码:
var ProjectDifficultyLst = new List<string>();
var ProjectDifficultyQry = from b in db.Projects
orderby b.ProjectDifficulty
select b.ProjectDifficulty;
ProjectDifficultyLst.AddRange(ProjectDifficultyQry.Distinct());
ViewBag.projectDifficulty = new SelectList(ProjectDifficultyLst);
if (!String.IsNullOrEmpty(projectDifficulty))
{
SearchQry = SearchQry.Where(l => l.ProjectDifficulty == projectDifficulty);
}
【问题讨论】:
-
您是否尝试将其投射到列表中?如果你想对列表进行操作,你应该做 ProjectDifficultyQry.Distinct().ToList()
-
你不是想将枚举的 IQueryable 添加到 List
吗? -
@maque 我已经尝试投射到列表中,但它仍然显示错误,说明参数无效。基本上,我正在尝试使用从数据库中获取数据并将其用作下拉搜索列表。但是,我不确定为什么我会收到关于 IQueryable 的这个错误。虽然,我的模型中有另一个枚举,并且可以很好地与搜索列表一起使用,没有任何问题。
-
ProjectDifficulty是enum的类型,而不是string。很难理解你想在这里做什么。
标签: c# asp.net-mvc linq enums iqueryable